unity3d中協程的用法


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

下面是時序圖 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM