使用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
這個協程的運行已經徹底終止。
下面是時序圖