Unity上での話です。
以下のようなコードA,Bがあった際に、コードAのようにListでまとめてからawaitをする方が処理が何倍も速かったのですがどういった理由なのでしょうか?
そもそもIList<IResourceLocation>
型の reourceLocations
を1つずつLoadAssetAsync()に渡すのではなく、
Addressable.LoadAssetsAsync<TObject>(IList<IResourceLocation> locations, Action<TObject> callback)
を使えばいいというのは承知しております。
ただ、コードAのようにまとめると速くなる理由を教えていただきたいです。
よろしくお願いいたします。
コードA
cs
1 //(代入省略) 2 IList<IResourceLocation> reourceLocations; 3 4 var handles = new List<AsyncOperationHandle<Object>>(); 5 6 foreach (var location in reourceLocations) 7 { 8 AsyncOperationHandle<Object> handle = Addressables.LoadAssetAsync<Object>(location); 9 handles.Add(handle); 10 } 11 12 foreach (var handle in handles) 13 await handle.Task; 14
コードB
cs
1 //(代入省略) 2 IList<IResourceLocation> reourceLocations; 3 4 foreach (var location in reourceLocations) 5 { 6 AsyncOperationHandle<Object> handle = Addressables.LoadAssetAsync<Object>(location); 7 await handle.Task; 8 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/06 16:09