namespace AddressableAssets.DocExampleCode { #region doc_Instantiate using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; internal class InstantiateFromKey : MonoBehaviour { public string key; // Identify the asset void Start() { // Load and instantiate Addressables.InstantiateAsync(key).Completed += instantiate_Completed; } private void instantiate_Completed(AsyncOperationHandle obj) { // Add component to release asset in GameObject OnDestroy event obj.Result.AddComponent(typeof(SelfCleanup)); } } // Releases asset (trackHandle must be true in InstantiateAsync, // which is the default) internal class SelfCleanup : MonoBehaviour { void OnDestroy() { Addressables.ReleaseInstance(gameObject); } } #endregion }