淺談 Unity Coroutine 的運行方式

Ken-Yi Lee
Feis Studio
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 比較相關的部分,可以將進行流程表示成下圖這個樣子:

Unity MonoBehaviour 簡易運行流程

--

--