The Unity3D StartCoroutine calls a function, when does that function return?

后端 未结 1 880
一个人的身影
一个人的身影 2021-02-02 02:56

I know that Unity3D StartCoroutine calls a function which runs on the same thread as StartCoroutine, but when does the called function return back to the original caller?

相关标签:
1条回答
  • 2021-02-02 03:10

    I looked around the internet for a good Unity3D Coroutine example and couldn't find a complete one. There is a great explanation by UnityGems, but even their example is incomplete. So I wrote my own example.

    This:

    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
      }
    }
    

    Produces this output:

    About to StartCoroutine
    about to yield return WaitForSeconds(1)
    Back from StartCoroutine
    Just waited 1 second
    Just waited another second
    
    0 讨论(0)
提交回复
热议问题