0

所以我发现我的salfe在我班的3个函数中重复了3次类似的代码,比如

var obj = ...
while (!obj.isDone) {
      yield return obj;
}

在 Unity3d 中,它与 AssetBundleRequest、WWW 和其他一些 asinc 类有关。我调用该代码的函数返回并且在此类调用之后IEnumerator仅具有很多 。我想知道如何将此类包装到一些模板函数中,该函数可从我的函数调用,其中包含一个日志或类似的东西,只有在什么时候结束?yield returnswaitwaityeld return func<typeof(obj)>(obj)obj.isDone

4

1 回答 1

1

你就不能yield return obj;一次吗?定义的 AsyncOperation的文档isDone似乎是这样说的,其中:

您可以让步,直到异步操作继续......

如果没有,您可以编写如下代码:

public static IEnumerator UntilDone(AsyncOperation op)
{
  while (!op.isDone) {
    yield return op;
  }
}
//in a method:
yield return StartCoroutine(UntilDone(obj));
于 2012-08-11T03:27:58.867 回答