0

正如文档所说,IEnumerator方法像线程一样执行,但我很困惑为什么

AssetBundleCreateRequest assetBundleCreateRequest = AssetBundle.CreateFromMemory(ByteArray);
yield return assetBundleCreateRequest;

冻结我的游戏 2 秒。谁能解释一下?

4

1 回答 1

0

好吧,它冻结了 2 秒,因为这是您实际要求的收益返回资产包创建请求

异步操作协程。

您可以在异步操作继续之前让步,或者手动检查它是否已完成 (isDone) 或进度 (progress)。异步操作

所以现在你正在请求你的协程等到你的assetbundlecreaterequest 完成。

要手动检查功能是否完成,而不必冻结您的应用程序,可以使用isdoneprogress命令代替

如果您需要进一步澄清,请随时发表评论。

编辑

isdone 使用示例

AssetBundleCreateRequest acr = AssetBundle.CreateFromMemory(decryptedData);
while (!acr.isDone)
{
    yield;
}
AssetBundle bundle = acr.assetBundle;
 
于 2014-11-27T09:14:48.257 回答