docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class AssetReference

    Reference to an addressable asset. This can be used in script to provide fields that can be easily set in the editor and loaded dynamically at runtime. To determine if the reference is set, use RuntimeKeyIsValid().

    Inheritance
    object
    AssetReference
    AssetReferenceT<TObject>
    Implements
    IKeyEvaluator
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: UnityEngine.AddressableAssets
    Assembly: Unity.Addressables.dll
    Syntax
    [Serializable]
    public class AssetReference : IKeyEvaluator

    Constructors

    Name Description
    AssetReference()

    Construct a new AssetReference object.

    AssetReference(string)

    Construct a new AssetReference object.

    Fields

    Name Description
    m_DerivedClassType

    Properties

    Name Description
    Asset

    The loaded asset. This value is only set after the AsyncOperationHandle returned from LoadAssetAsync completes. It will not be set if only InstantiateAsync is called. It will be set to null if release is called.

    AssetGUID

    Stores the guid of the asset.

    CachedAsset

    Cached Editor Asset.

    IsDone

    Get the loading status of the internal operation.

    OperationHandle

    The AsyncOperationHandle currently being used by the AssetReference. For example, if you call AssetReference.LoadAssetAsync, this property will return a handle to that operation.

    RuntimeKey

    The actual key used to request the asset at runtime. RuntimeKeyIsValid() can be used to determine if this reference was set.

    SubObjectName

    Stores the name of the sub object.

    editorAsset

    Used by the editor to represent the main asset referenced.

    Methods

    Name Description
    ~AssetReference()
    Instantiate(Transform, bool)

    InstantiateAsync the referenced asset as type TObject. This cannot be used a second time until the first load is released. If you wish to call load multiple times on an AssetReference, use Addressables.InstantiateAsync() and pass your AssetReference in as the key. See the Loading Addressable Assets documentation for more details.

    Instantiate(Vector3, Quaternion, Transform)

    InstantiateAsync the referenced asset as type TObject. This cannot be used a second time until the first load is released. If you wish to call load multiple times on an AssetReference, use Addressables.InstantiateAsync() and pass your AssetReference in as the key. See the Loading Addressable Assets documentation for more details.

    InstantiateAsync(Transform, bool)

    InstantiateAsync the referenced asset as type TObject. This cannot be used a second time until the first load is released. If you wish to call load multiple times on an AssetReference, use Addressables.InstantiateAsync() and pass your AssetReference in as the key. See the Loading Addressable Assets documentation for more details.

    InstantiateAsync(Vector3, Quaternion, Transform)

    InstantiateAsync the referenced asset as type TObject. This cannot be used a second time until the first load is released. If you wish to call load multiple times on an AssetReference, use Addressables.InstantiateAsync() and pass your AssetReference in as the key. See the Loading Addressable Assets documentation for more details.

    IsValid()

    Returns the state of the internal operation.

    LoadAssetAsync<TObject>()

    Load the referenced asset as type TObject. This cannot be used a second time until the first load is released. If you wish to call load multiple times on an AssetReference, use LoadAssetAsync<TObject>(object) and pass your AssetReference in as the key.

    See the Loading Addressable Assets documentation for more details.

    LoadAsset<TObject>()

    Load the referenced asset as type TObject. This cannot be used a second time until the first load is released. If you wish to call load multiple times on an AssetReference, use LoadAssetAsync<TObject>(object) and pass your AssetReference in as the key.

    See the Loading Addressable Assets documentation for more details.

    LoadScene()

    Loads the reference as a scene. This cannot be used a second time until the first load is released. If you wish to call load multiple times on an AssetReference, use Addressables.LoadSceneAsync() and pass your AssetReference in as the key. See the Loading Addressable Assets documentation for more details.

    LoadSceneAsync(LoadSceneMode, bool, int)

    Loads the reference as a scene. This cannot be used a second time until the first load is unloaded. If you wish to call load multiple times on an AssetReference, use Addressables.LoadSceneAsync() and pass your AssetReference in as the key. See the Loading Addressable Assets documentation for more details.

    ReleaseAsset()

    Release the internal operation handle.

    ReleaseInstance(GameObject)

    Release an instantiated object.

    RuntimeKeyIsValid()

    Checks if the current RuntimeKey is valid.

    SetEditorAsset(Object)

    Sets the main asset on the AssetReference. Only valid in the editor, this sets both the editorAsset attribute, and the internal asset GUID, which drives the RuntimeKey attribute. If the reference uses a sub object, then it will load the editor asset during edit mode and load the sub object during runtime. For example, if the AssetReference is set to a sprite within a sprite atlas, the editorAsset is the atlas (loaded during edit mode) and the sub object is the sprite (loaded during runtime). If called by AssetReferenceT, will set the editorAsset to the requested object if the object is of type T, and null otherwise.

    Object to reference
    SetEditorSubObject(Object)

    Sets the sub object for this asset reference.

    ToString()

    String representation of asset reference.

    UnLoadScene()

    Unloads the reference as a scene.

    ValidateAsset(string)

    Validates that the referenced asset allowable for this asset reference.

    ValidateAsset(Object)

    Validates that the referenced asset allowable for this asset reference.

    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)