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().
Implements
Inherited Members
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_AssetGUID |
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. |
DerivedClassType | |
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. |