Unity項目架構設計與開發管理
筆者是觀摩劉鋼先生講解的Unity項目架構設計與開發管理後所總結記錄的。
0×01 EmptyGo
- 將所有的代碼放到一個空的遊戲對象中;
- 使用
GameObject.Find()來找到目標進行使用。
架構設計的雛形實現,缺點是當我們的項目越來越大的時候難以靈活管理;不適合大型項目。
0×02 Simple GameManager
GameManager.Instance.playSound("menu");
優點是: 是把EmptyGO做成一個單例來使用;比較適合小型項目;空物體進行全局引用。 缺點是: 把所有的邏輯都放在一個腳本中,不利於編譯;而且會造成單一文件過於龐大;NO 即插即用。
0×03 Manager Of Managers
類似於分級結構,各司其職;比如音頻管理,場景管理,關卡管理等,每一個都是一個單例腳本,配合使用。結構相對清晰。
- MainManager
- EventManager:消息傳遞管理
- AudioManager:音效管理
- GUIManager:圖形視圖管理
- PoolManager:GO管理
- LevelManager: 關卡管理
- GameManager:核心機制管理
- SaveManager:遊戲進度管理
- MenuManager:菜單行為動畫管理
- …
0×04 MVCS(StrangeIOC)

Strange是一個超輕量級且高度可擴展的控制反轉控制(IoC)框架,專為C#和Unity編寫。 它包含以下功能,其中大部分是可選的:
- 一個核心綁定框架,幾乎可以讓你將一個或多個任何東西綁定到一個或多個其他任何東西。
- 依賴注入
- 反射綁定顯著降低了採用反射效率的開銷
- 共享事件系統,EventDispatcher 和 Signals。
- MonoBehaviour 調配
- 可選的MVCS(模型/視圖/控制器/服務)結構
- 等等…
這個框架的想法很有意思;可以研究一下它的原理即源碼。 地址:https://github.com/strangeioc/strangeioc
0×05 MVVM(uFrame)

uFrame 是為 Unity Engine 設計的 MVVM / MV * 框架。它配備了大量功能,包括圖形界面 / 圖表引擎,可生成代碼甚至處理一些重新分解。圖形界面顯著提高所有團隊成員開發和實施一致編碼模型的效率。隨著微軟全息鏡頭的崛起和Unity的跨平台功能,uFrame 是構建下一個大型應用程序或遊戲的終極解決方案。 包含以下功能:
- 高質量的圖形引擎
- 可編輯的代碼生成模板
- UGUI綁定
- IOC /依賴注入
- 完整的MV *實現 – 事件聚合
- 場景管理(將場景載入為具有附加載入的預製件)
- 在極大型項目上測試運行
- 開源框架
- …
0×06 實體組件系統(ECS)
在2018年,Unity又重點推薦ECS;ECS是一種編寫代碼的方式,專註於您正在解決的實際問題:組成遊戲的數據和行為。其中心為Entity,Component,System。除了出於設計原因更好地接近遊戲編程之外,使用ECS可以使您更好的利用Unity的C#job系統和Burst Compiler,充分利用當今的多核處理器。
- Entity 是實例,作為承載組件的載體,也是框架中維護對象的實體.
- Component 只包含數據,具備這個組件便具有這個功能.
- System 作為邏輯維護,維護對應的組件執行相關操作.
而且使用ECS,可以讓你從面向對象轉向數據導向設計,這意味著重用代碼更容易,並且更容易讓其他人掌握並做出貢獻。
-EOF-
推薦閱讀:
TAG:Unity(遊戲引擎) | 遊戲開發 | 遊戲設計 |
