Serialized reference that loads a specific T asset from registered built content on demand instead of pulling it in with direct references.
using System.Threading.Tasks; using Unity.Loading; using UnityEngine;
namespace BuildDocExamples { public class Loadable_LoadAndReleaseExample { public class HatPicker : MonoBehaviour { public Loadable<GameObject> hatPrefab;
public void EquipDefault() { hatPrefab.Load(); Instantiate(hatPrefab.Target); } }
// Example showing async loading with status check public async Task LoadAsyncExample(Loadable<Texture2D> myLoadable) { await myLoadable.LoadAsync(); if (myLoadable.Status == LoadableStatus.Loaded) { // Use myLoadable.Target Debug.Log($"Loaded: {myLoadable.Target.name}"); } else { Debug.LogWarning($"Texture2D myLoadable failed to load. Loadable : {myLoadable.ToString()}"); } myLoadable.Release(); } } }
| Property | Description |
|---|---|
| LoadableObjectId | The underlying loadable object id. |
| Status | The current status of the loading operation. |
| Target | The result of the load operation. If the operation is not complete or has failed, this returns null. Use Loadable<T0>.Load to force the operation to complete synchronously. |
| Constructor | Description |
|---|---|
| Loadable_1 | Creates a new Loadable with the specified loadable object id. |
| Method | Description |
|---|---|
| Load | Loads the object synchronously. Blocks until loading is complete. |
| LoadAsync | Loads the object asynchronously. Returns an awaitable that completes when loading is finished. |
| Release | Releases the loaded object. |
| ToString | Returns a string representation of the loadable object id. |