正如文档所说,IEnumerator
方法像线程一样执行,但我很困惑为什么
AssetBundleCreateRequest assetBundleCreateRequest = AssetBundle.CreateFromMemory(ByteArray);
yield return assetBundleCreateRequest;
冻结我的游戏 2 秒。谁能解释一下?
正如文档所说,IEnumerator
方法像线程一样执行,但我很困惑为什么
AssetBundleCreateRequest assetBundleCreateRequest = AssetBundle.CreateFromMemory(ByteArray);
yield return assetBundleCreateRequest;
冻结我的游戏 2 秒。谁能解释一下?
好吧,它冻结了 2 秒,因为这是您实际要求的收益返回资产包创建请求
异步操作协程。
您可以在异步操作继续之前让步,或者手动检查它是否已完成 (isDone) 或进度 (progress)。异步操作
所以现在你正在请求你的协程等到你的assetbundlecreaterequest 完成。
要手动检查功能是否完成,而不必冻结您的应用程序,可以使用isdone或progress命令代替
如果您需要进一步澄清,请随时发表评论。
编辑
isdone 使用示例
AssetBundleCreateRequest acr = AssetBundle.CreateFromMemory(decryptedData);
while (!acr.isDone)
{
yield;
}
AssetBundle bundle = acr.assetBundle;