Unity中的協程

2021-09-17 04:25:43 字數 670 閱讀 8677

1.建立協程

迭代器:ienumerator

private ienumerator test()

裡面可以使用

yield return new waitforsecond(1);//等待1s後執行後面的**

yield return new waitforseconds(0.3f);//等待0.3秒,一段指定的時間延遲之後繼續執行,在所有的update函式完成呼叫的那一幀之後(這裡的時間會受到time.timescale的影響);

yield return new waitforsecondsrealtime(0.3f);//等待0.3秒,一段指定的時間延遲之後繼續執行,在所有的update函式完成呼叫的那一幀之後(這裡的時間不受到time.timescale的影響);

2.呼叫與結束這個協程

呼叫協程的方法有兩種

① startcoroutine(「test」);

② startcoroutine(test());

結束:① stopcoroutine(「test」);

② stopcoroutine(test());

協程裡面的內容呼叫完了會自動停止,stopcoroutine用於手動結束,stopallcoroutines——結束當前執行的所有協程。

Unity中協程方法使用

開啟協程 void start 返回值是ienumerator 返回引數時使用 yield return null 協程方法的呼叫是startcoroutine changecolor ienumerator changecolor 關閉協程 關閉協程的方法需要和開啟協程的方法對應 不能使用star...

Unity 協程詳解

class myiter ienumerable myiter iter newmyiter foreach int num in iter 我們需要讓資料結構支援foreach遍歷,所以要繼承ienumerable介面,實現getenumerator方法返回乙個迭代器,那麼這裡就很奇怪,返回值明明...

Unity中的協程是什麼?

什麼是協程?1 協程是乙個分部執行,遇到條件 yield return 語句 會掛起,直到條件滿足才會被喚醒繼續執行後面的 2 unity在每一幀 frame 都會去處理物件上的協程。unity主要是在update後去處理協程 檢查協程的條件是否滿足 但也有寫特例。什麼情況是條件滿足?在協程方法中使...