Describes the current loading phase of a Loadable<T0> after Loadable<T0>.Load or Loadable<T0>.LoadAsync is used.
Query Loadable<T0>.Status to drive UI or to assert that a load finished before reading Loadable<T0>.Target. LoadableStatus.Failed indicates the asynchronous load completed without a usable object. This often occurs due to missing built content.
using Unity.Loading; using UnityEngine;
namespace BuildDocExamples { // Example: use LoadableStatus to react to the outcome of a load. After awaiting // LoadAsync, Status is either Loaded (Target is usable) or Failed (Target is null, // typically because the content is missing from any registered content directory). public class LoadableStatus_Example { // On success this returns Target to the caller. The caller owns the passed-in Loadable // and must call Release() on it when done using the texture. The caller // must not load or await this Loadable again before releasing it, otherwise the cached // load operation throws. public async Awaitable<Texture2D> TryGetTextureAsync(Loadable<Texture2D> icon) { // Before loading, Status is None. It becomes Loading while the operation runs. await icon.LoadAsync();
switch (icon.Status) { case LoadableStatus.Loaded: // The load succeeded and Target holds the asset. return icon.Target; case LoadableStatus.Failed: // The load completed without a usable object. Target is null. Debug.LogWarning($"Failed to load {icon}."); return null; default: // None or Loading are not expected once LoadAsync has been awaited. return null; } } } }