淺談 Unity Coroutine 的運行方式
Published in
7 min readApr 20, 2019
從 Coroutine、await/async 到 C# job system,Unity 處理非同步工作有很多不同的方法。這次我們就先從在 Unity 內 Coroutine 是怎麼用單一執行緒執行的原理開始談起。
Unity 的 Coroutine 運作是建立在 MonoBehaviour 的行為之上,以單一執行緒 (thread) 的方式運行。所以在了解 Coroutine 的運行方式之前,我們先來看看 MonoBehaviour 的運行規則。
在每一幀畫面更新時,MonoBehaviour 會依照固定的順序進行可自定義的訊息 (message) 操作¹。如果我們只考慮到與 Coroutine 比較相關的部分,可以將進行流程表示成下圖這個樣子: