使用StartCoroutine方法开始一段协程
在协程内部使用yield return表示将该协程在当前位置挂起,等待下一次调用时直接从当前位置执行
yield return的值决定下一次调用的时机
例如 :
yield return null
是最简单的协程类型,即在每一帧Update之后恢复。
yield return new WaitForSeconds(1.5f);
,表示在1.5秒之后将协程恢复,从时序图中可以看到它的恢复也将在Update之后执行。
yield return new WaitForEndOfFrame();
,表示在一帧的最后阶段将协程恢复,从时序图可以看到它的恢复将在一帧的最后执行,此时物理逻辑,游戏逻辑和渲染逻辑都已执行完毕。
yield return new WaitForFixedUpdate();
,表示在物理引擎这一帧运算完毕后将协程恢复,从时序图可以看到它的恢复在物理运算的最后一步,在FixedUpdate之后执行。
yield return new WWW("http://wuzhiwei.net/photo/photo1.jpg");
,表示通过WWW访问网址http://wuzhiwei.net/photo/photo1.jpg
,将照片下载完毕时时将协程恢复。
yield return StartCoroutine(routine)
,这是一种比较特殊的方式,即组合协程。 即这个协程的恢复条件是routine
这个协程的运行已经彻底终止。
下面是时序图