正如文档所说,IEnumerator
方法像线程一样执行,但我很困惑为什么
AssetBundleCreateRequest assetBundleCreateRequest = AssetBundle.CreateFromMemory(ByteArray);
yield return assetBundleCreateRequest;
冻结我的游戏2秒钟。有人可以解释一下吗?
答案 0 :(得分:0)
它会冻结2秒,因为这是您实际请求的 yield return assetBundleCreateRequest
异步操作协程。
您可以继续屈服,直到异步操作继续,或手动检查它是否已完成(isDone)或进度(进度)。 AsyncOperation
所以现在你要求你的协程等到你的assetbundlecreaterequest完成。
要手动检查功能是否完成,而不必冻结您的应用程序,将使用isdone或progress命令
如果您需要进一步澄清,请随时发表评论。
修改强>
使用isdone的样本
AssetBundleCreateRequest acr = AssetBundle.CreateFromMemory(decryptedData);
while (!acr.isDone)
{
yield;
}
AssetBundle bundle = acr.assetBundle;