Unity3d yield

正常情况下,协程是在Update函数返回时执行,而协程的主要功能是延缓其执行,指定给定的YieldInstruction完成。

常用的协程有:

yield:当下一帧所有的Update方法被调用之后,协程继续执行。

yield WaitForSeconds:等待指定时间后,协程继续。

yield WaitForFixedUpdate:在所有脚本上的所有FixedUpdate被调用之后继续执行。

yield WWW:在WWW加载完成之后继续执行。

yield StartCoroutine(Fun):等待协程Fun完成后执行。

代码实例:

  void Start () {
        StartCoroutine(PrintAfter_WaitAndPrintInvoke("OK!!!"));
    }

    IEnumerator WaitAndPrint(float time, string str)
    {
        yield return new WaitForSeconds(time);
        print(str);
    }

    IEnumerator PrintAfter_WaitAndPrintInvoke(string str)
    {
        yield return StartCoroutine(WaitAndPrint(3, "wait 3 second print"));
        print(str);
    }

  //在WWW加载完成后继续执行
  IEnumerator TestWWW()
  {
    string url = "http://img ges.ear thcam.com/ec_me tros/our cams/ fridays.jpg";
    WWW www = new WWW(url);
    yield return www;
  }

 

posted @ 2017-07-23 20:32  吴筱军  阅读(168)  评论(0)    收藏  举报