Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


IAsyncAssetEntry

An optional capability for an asset entry that loads its asset asynchronously.
Read time 1 minuteLast updated 8 days ago

Definition

  • Type: Interface
  • Namespace: Unity.Localization
  • Assembly: UnityEngine.LocalizationRuntimeModule
public interface IAsyncAssetEntry : IAssetEntry, IResourceEntry

Remarks

Implement this alongside IAssetEntry when the entry loads through an asynchronous operation, such as a Resources request or an Addressables handle. The localization system calls this on the asynchronous resolve paths. An entry that already has its asset in hand implements ISynchronousAssetEntry instead; the built-in entries are synchronous only.
Additional Resources: IAssetEntry, ISynchronousAssetEntry
Load an asset entry and log the result.

Examples

using System.Threading;using Unity.Localization;using UnityEngine;using Object = UnityEngine.Object;namespace Unity.Localization.Samples{ public class AsyncAssetEntryExample : ResourceEntryBase, IAssetEntry, IAsyncAssetEntry { [SerializeField] string m_ResourcePath; public AsyncAssetEntryExample(long keyId, string resourcePath) : base(keyId) => m_ResourcePath = resourcePath; public bool HasAsset() => !string.IsNullOrEmpty(m_ResourcePath); public async Awaitable<Object> LoadAssetAsync(CancellationToken cancellationToken) { if (!HasAsset()) return null; var request = Resources.LoadAsync<Object>(m_ResourcePath); await Awaitable.FromAsyncOperation(request, cancellationToken); return request.asset; } public void ReleaseAsset(Object asset) => Resources.UnloadAsset(asset); } public class IAsyncAssetEntryLoadAssetAsyncExample { public async Awaitable Run() { var shared = ScriptableObject.CreateInstance<SharedTableData>(); IAsyncAssetEntry entry = new AsyncAssetEntryExample(shared.AddKey("banner").Id, "UI/banner"); var asset = await entry.LoadAssetAsync(CancellationToken.None); if (asset != null) { Debug.Log(asset.name); entry.ReleaseAsset(asset); } } }}

Methods

Method

Description

LoadAssetAsyncLoads the asset assigned to this entry.

Inheritance