unity 協程的用法

概念:伴隨着主線程⼀起運⾏的⼀段程序。
協程與協程之間是並⾏執⾏,與主線程也是並⾏執⾏。
 
協程可以用來計時,例如lol生產野怪,在怪物死亡時調用計時生成野怪的協程,那麼這段程序只會在野怪倒計時的時候執行,生成野怪後協程就會關閉,比起直接寫在主進程裏節省性能。
 
關鍵字IEnumerator
協程必須返回 yield retrun
 
 
 
yield return 【具體的值】:
        暫停協程
        等待下⼀幀繼續執⾏
        執⾏的時間節點 在Update之後 LateUpdate之前
 
 
yield return new WaitForSeconds(n)
        暫停協程
        等待n秒之後繼續執⾏

 

yield return new WaitForFixedUpdate()
        暫停協程 等待⼀個fifixed的時間間隔之後繼續執⾏
        相當於yield return new WaitForSeconds(0.02)

 

yield return StartCoroutine(協程⽅法);
        暫停協程
        等待yield return 的協程執⾏完了之後繼續執⾏本協程
 
 
 
開始協程的方法:
1.StartCoroutine(協程⽅法([協程參數]))
2.StartCoroutine(”⽅法名稱”)
3.StartCoroutine(”⽅法名稱”,⽅法參數) //⽤這種⽅式啓動的協程參數只能是1個

 

停止協程的方法:

1.StopCoroutine(Coroutine)
2.StopCoroutine(IEnumerator)
3.StopCoroutine(string methodName)       //只能停掉,⽤字符串啓動的協程
4.StopAllCoroutine 停⽌所有正在運⾏的協程   //一般不用,你可能會停止別人寫的協程
 
 
跳出協程需要用 yield break
 
 
特殊協程 IEnumerator Start()
//////Start協程會在遊戲開始時⾃動啓動
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章