Easy question(?) I must be missing something

Hi, still getting a handle on things. As documentation suggests AssetReference.Asset should be set once the async load operation completes, but I’m not seeing that be the case. Please let me know what I have mixed up. Thank you!

Unity 19.4.17f1
Addressables 1.18.15
Play Mode Script: All have same result

Docs:
Asset
The loaded asset. This value is only set after the IAsyncOperation returned from LoadAsset completes. It will not be set if only Instantiate is called. It will be set to null if release is called.

public class test : MonoBehaviour
{
    public AssetReference assetRef;
    // Start is called before the first frame update
    IEnumerator Start()
    {
        Debug.Log(assetRef.Asset == null); //true
        var handle = Addressables.LoadAssetAsync<GameObject>(assetRef);
        yield return handle;
        Debug.Log(handle.Status); //Succeeded
        Debug.Log(assetRef.Asset == null); //true
        Debug.Log(handle.Result == null); //false

    }
}

assetRef.Asset is only set if you use specifically use the function
assetRef.LoadAssetAsync<T>()
versus
Addressables.LoadAssetAsync<T>(assetRef)
will not affect assetRef.Asset. You can access the loaded object in the returned handle.Result from the above function.

you can read more about this behavior in this thread:

1 Like