9

Unity3D の StartCoroutine が StartCoroutine と同じスレッドで実行される関数を呼び出すことは知っていますが、呼び出された関数が元の呼び出し元に戻るのはいつですか?

4

1 に答える 1

23

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
于 2013-09-17T17:17:07.793 に答える