以有條理與 ECS 的思緒正確地撰寫 MonoBehavior 邏輯

在 Unity 中,目前分為兩個撰寫遊戲的方式:ECS(Entity、Component、System)與傳統的 MonoBehaviour

前者是 Unity 在 2018 年所推出的新程式結構撰寫理念,主要是為了解決多數的程式碼都在主執行緒上執行,而導致 CPU 分配率不彰、程式效率降低、執行緒鎖死的問題。但 ECS 基本上到年底,都還不是一個完善的狀態,更不是萬能仙丹;事實上,ECS 就算進入了正式版,也有可能是在下一個產物出來之前的過渡期設計。

話雖如此,ECS 的設計理念還是值得參考與借鑒的。在前端網頁設計中,其實已經運用了類似的理念有至少二、三年之久,那東西耳熟能詳的名稱是:VuexRedux

Vuex 是個設計理念而不是特殊軟體,其用意是為了集中資料、並且明確地劃分修改與存取邏輯。

簡單來說,ECS 嘗試地想要將:「把所有邏輯全部塞進同一個 MonoBehaviour 元件」的這種問題給解決。

設想看看,如果遊戲內有一百個物件,而且那些物件都是 NPC 玩家,但角色大多都是相同的邏輯與行為方式,在傳統寫法這會造成每個元件都有自己的邏輯,而導致效能不彰。

說到每個元件都有自己的邏輯,ECS 的解決方法顯而易見:

讓元件本身只保有狀態資料,而邏輯獨立成一個中央系統。

如果這聽起來牛頭不對馬嘴、不曉得到底是在說什麼東西,那麼你一定會喜歡接下來的程式碼範例章節。 閱讀全文〈以有條理與 ECS 的思緒正確地撰寫 MonoBehavior 邏輯〉