unity 3d yield 用法總結


  最近,需要需要用unity 3d做點東西,但是了碰到了延遲加載問題,我總結余下:

  Coroutines & Yield是unity3d編程中重要的概念,它可以實現將一段程序延遲執行或者將其各個部分分布在一個時間段內連續執行,但是在Javascript與C#中實現Coroutines & Yield,在語法上卻有一些區別:

  javascript中yield用法很簡單,直接yield就行了,或者yield WaitForSeconds (2);

  c#中的用法如下:

  yield不可單獨使用

  需要與return配合使用,例如:

  1 yield return 0; //等0幀

  2 yield return 1; //等1幀

  3 yield return WaitForSeconds(3.0); //等待3秒

  所有使用yield的函數必須將返回值類型設置為IEnumerator類型,例如:

  
 IEnumerator DoSomeThingInDelay() {...}
 

  最后,也是在”Using C#”這個章節中沒有講到的關鍵一點是,所有IEnumerator類型函數必須使用”StartCoroutine”這個函數觸發,不能單獨使用,例如:

StartCoroutine(DoSomeThingInDelay());

  這就是yield的用法。

1
1 StartCoroutine ( DoSomeThingInDelay ( ) ) ;


免責聲明!

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



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