協同程式
效能考慮因素
最好合適地使用協同程式,因為靈活性會帶來效能成本。
- 與標準的 Update 方法相比,大量協同程式需要 CPU 更多。
- 在某些版本的 Unity 中存在一個問題,由於 Unity 拳擊
MoveNext
返回值,協程會在每個更新週期產生垃圾。這是最後一次在 5.4.0b13 中觀察到的。 ( 錯誤報告 )
通過快取 YieldInstructions 減少垃圾
減少協程中生成的垃圾的一個常見技巧是快取 YieldInstruction
。
IEnumerator TickEverySecond()
{
var wait = new WaitForSeconds(1f); // Cache
while(true)
{
yield return wait; // Reuse
}
}
屈服 null
不會產生額外的垃圾。