こんにちは。Unity使い始めて1ヶ月ほどの初心者です。
外部リソースの読み込み事情が面倒すぎて心が折れそうですが
AAS(Addressable Assets System)
を試しているところです。
今回はAASでのアセット読み込みを async/await でスッキリ書けたのでメモします。
Addressable Assets System でのアセット読み込み
AASではResources のように同期処理で読み込むメソッドが無く、
基本的には Addressables.LoadAssetAsync
で非同期に読み込むみたいです。
公式ドキュメントによると、以下のように読み込み完了時のイベントハンドラで目的のアセットを取得するよう書かれています。
Addressables.LoadAssetAsync<GameObject>("AssetAddress").Completed += OnLoadDone;
async/await を使って書いてみる
もっとスッキリ書けないかなーと模索していましたが、
.Task プロパティが用意されていて、async/await で書けます。
GameObject prefab = await Addressables.LoadAssetAsync<GameObject>("HogePrefab").Task
参考
[Addressable Assets Systemを完全に理解する]
(https://qiita.com/k7a/items/b4fd298bcb64dc968ad1)