Unity3D StartCoroutine调用一个函数,该函数何时返回

本文关键字:函数 何时 返回 一个 调用 StartCoroutine Unity3D | 更新日期: 2023-09-27 18:31:35

我知道 Unity3D StartCoroutine 调用的函数与

StartCoroutine 在同一线程上运行,但是被调用的函数何时返回到原始调用者?

Unity3D StartCoroutine调用一个函数,该函数何时返回

我在互联网上寻找一个很好的 Unity3D 协程示例,但找不到完整的示例。 UnityGems有一个很好的解释,但即使是他们的例子也是不完整的。所以我写了我自己的例子。

这:

using UnityEngine;
using System.Collections;
public class MainCamera: MonoBehaviour {
  void Start () {
    Debug.Log ("About to StartCoroutine");
    StartCoroutine(TestCoroutine());
    Debug.Log ("Back from StartCoroutine");
  }
  IEnumerator TestCoroutine(){
    Debug.Log ("about to yield return WaitForSeconds(1)");
    yield return new WaitForSeconds(1);
    Debug.Log ("Just waited 1 second");
    yield return new WaitForSeconds(1);
    Debug.Log ("Just waited another second");
    yield break;
    Debug.Log ("You'll never see this"); // produces a dead code warning
  }
}

生成以下输出:

About to StartCoroutine
about to yield return WaitForSeconds(1)
Back from StartCoroutine
Just waited 1 second
Just waited another second