前提・実現したいこと
私はunityのAddressablesについて勉強しています。
公式マニュアルを読んでいて不明点があったため、質問したいです。
公式マニュアルには下記のコードサンプルがあります。
C#
1IEnumerator LoadGameObjectAndMaterial() 2{ 3 //Load a GameObject 4 AsyncOperationHandle<GameObject> goHandle = Addressables.LoadAssetAsync<GameObject>("gameObjectKey"); 5 yield return goHandle; 6 if(goHandle.Status == AsyncOperationStatus.Succeeded) 7 { 8 GameObject obj = goHandle.Result; 9 //etc... 10 } 11 12 //Load a Material 13 AsyncOperationHandle<IList<IResourceLocation>> locationHandle = Addressables.LoadResourceLocationsAsync("materialKey"); 14 yield return locationHandle; 15 AsyncOperationHandle<Material> matHandle = Addressables.LoadAssetAsync<Material>(locationHandle.Result[0]); 16 yield return matHandle; 17 if (matHandle.Status == AsyncOperationStatus.Succeeded) 18 { 19 Material mat = matHandle.Result; 20 //etc... 21 } 22 23 //Use this only when the objects are no longer needed 24 Addressables.Release(goHandle); 25 Addressables.Release(matHandle); 26}
これをより具体的な形で使うと、下記のようになるようです。
下記はこのページのコードの引用しです。
void Start() { StartCoroutine(Load()); } IEnumerator Load() { //アセットのロード var handle = Addressables.LoadAssetAsync<GameObject>("TitleImage"); yield return handle; //成功したらインスタンスを配置 if (handle.Status == AsyncOperationStatus.Succeeded) { var instance = Instantiate(handle.Result); } }
ここまでのサンプルを読んで質問です。
<>
これらのサンプルで行っている
C#
1yield return goHandle;
や
C#
1yield return handle;
が何を意味するのか知りたいです。
というのも、コルーチンの返り値といえば、私は大まかに下記の三つがあると思っています。
C#
1public class Test : MonoBehaviour { 2 void Start () { 3 // コルーチンを実行 4 StartCoroutine ("Sample"); 5 } 6 7 // コルーチン 8 private IEnumerator Sample() { 9 // X秒待つ 10 yield return new WaitForSeconds (Xf); 11 // コルーチンを終了する 12 yield break; 13 // いったん処理を抜ける(ここでの返り値は上記以外なら結果は同じ。「1」でも「あ」でも) 14 yield return null; 15 } 16} 17
公式マニュアルのコードサンプルでは、三つのいずれでもない返り値を持っているため、
何を行っているんだとなっている次第です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。