어드레서블 에셋과 에셋 번들의 공통점은 에셋을 불러오는 작업을 주소를 통한 참조로 한다. 기존의 에셋 번들보다 더 편리하게 에셋을 관리할 수 있도록 한 것이다. 어드레서블 에셋은, 에셋에 직접 주소가 있으며, 에셋의 위치는 참조에 무관하다.
또한 커스텀 에디터로 기능을 구현하지 않고, 기본 패키지 Addressables을 통해 어드레서블 에셋 기능을 사용할 수 있다.
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
public class AddressableAssetLoad : MonoBehaviour
{
private AsyncOperationHandle<GameObject> handle;
private void Start()
{
handle = Addressables.LoadAssetAsync<GameObject>("Test_Object");
if(handle.Status != AsyncOperationStatus.Failed) { handle.Completed += Duplicate; }
}
private void Duplicate(AsyncOperationHandle<GameObject> handle)
{
Instantiate(handle.Result);
Addressables.Release(handle);
}
}
//실행 결과 : Test_Object 주소를 가진 프리팹이 하나 생성되었다.
위에 소개했던 방법 이외에도, 어드레서블 에셋을 주소, 레이블, AssetReference 등을 이용해서 사용할 수도 있다.
불러오는 작업이 비동기라는 것을 명심해서, 고생할 일이 없었으면 한다.