유니티 C# 어드레서블 Addressables 간단 구현 예시 코드 작성

반응형

유니티 C# 어드레서블 Addressables 간단 구현 예시 코드 작성

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;

public class AddressableExample : MonoBehaviour
{
    // Addressable Asset을 참조하는 AssetReference를 추가합니다.
    public AssetReference assetReference;

    void Start()
    {
        // Addressable Asset 로드
        LoadAsset();
    }

    public void LoadAsset()
    {
        // 비동기로 에셋 로드
        assetReference.LoadAssetAsync<GameObject>().Completed += OnAssetLoaded;
    }

    private void OnAssetLoaded(AsyncOperationHandle<GameObject> obj)
    {
        if (obj.Status == AsyncOperationStatus.Succeeded)
        {
            // 로드가 성공했을 때, 에셋을 인스턴스화합니다.
            Instantiate(obj.Result, Vector3.zero, Quaternion.identity);
        }
        else
        {
            Debug.LogError("Failed to load Addressable Asset.");
        }
    }

    public void UnloadAsset()
    {
        // 에셋 언로드 (메모리에서 해제)
        assetReference.ReleaseAsset();
    }
}
반응형