본문 바로가기
TAssetBundle

[TAssetBundle] 에셋 로딩을 대기하는 방법

by tigu77 2023. 6. 1.

에셋 로딩을 대기하는 방법에는 기본적으로 2가지 방법을 사용할 수 있습니다.

추가로 UniTask를 사용하는 프로젝트에서는 USE_UNITASK 전처리기를 추가하여 TAsyncOperation.ToUniTask() 확장 메소드로 대기할 수 있습니다.

유니티 코루틴에서 대기

using TAssetBundle;

public class TestLoadAsset : MonoBehaviour
{
    [AssetType(typeof(GameObject))]
    public AssetRef prefab;

    private void Start()
    {
        StartCoroutine(LoadAsset());
    }

    private IEnumerator LoadAsset()
    {
        var loadAsset = AssetManager.LoadAssetAsync<GameObject>(prefab);

        //yield로 대기
        yield return loadAsset;

        var asset = loadAsset.Result.Get();

        Instantiate(asset);
    }
}

await로 대기

using TAssetBundle;

public class TestLoadAsset : MonoBehaviour
{
    [AssetType(typeof(GameObject))]
    public AssetRef prefab;


    private void Start()
    {
        LoadAsset();
    }

    private async void LoadAsset()
    {
        //await로 대기
        var loadAsset = await AssetManager.LoadAssetAsync<GameObject>(prefab).ToTask();

        Instantiate(loadAsset.Get());
    }
}