ドキュメントによるとIEnumerator
、メソッドはスレッドのように実行されますが、その理由がわかりません
AssetBundleCreateRequest assetBundleCreateRequest = AssetBundle.CreateFromMemory(ByteArray);
yield return assetBundleCreateRequest;
ゲームが 2 秒間フリーズします。誰でも説明できますか?
ドキュメントによるとIEnumerator
、メソッドはスレッドのように実行されますが、その理由がわかりません
AssetBundleCreateRequest assetBundleCreateRequest = AssetBundle.CreateFromMemory(ByteArray);
yield return assetBundleCreateRequest;
ゲームが 2 秒間フリーズします。誰でも説明できますか?
2 秒間フリーズします。これは、yield return assetBundleCreateRequestで実際に要求しているためです。
非同期操作のコルーチン。
非同期操作が続行されるまで譲歩するか、完了 (isDone) か進行 (progress) かを手動で確認できます。AsyncOperation
したがって、現在、assetbundlecreaterequest が完了するまでコルーチンに待機するように要求しています。
アプリケーションをフリーズせずに関数が完了したかどうかを手動で確認するには、代わりにisdoneまたはprogressコマンドを使用します
さらに明確にする必要がある場合は、お気軽にコメントしてください。
編集
isdoneの使用例
AssetBundleCreateRequest acr = AssetBundle.CreateFromMemory(decryptedData);
while (!acr.isDone)
{
yield;
}
AssetBundle bundle = acr.assetBundle;