邏輯基於MVC
Model用於共通資料的存儲,且提供取用的Method。
View為Unity的視圖,無腳本。
System負責複雜的資料處理邏輯,處理完邏輯將資料存入Model供Controller取用。
Controller用於View邏輯處理,通常會需要[SerializeField]等,所以會繼承MonoBehaviour掛在場景物件上,調用System處理資料,並從Model取用。
腳本命名
Controller為有控制用途的Contorller,其他屬於MVC Controller的腳本不加Controller
Manager為有總管理責任的Contorller,通常只會有一個,掛在場景物件上。
需依賴DI框架,目前選用Reflax(速度較快、效能較好)
需要給其他腳本調用的腳本需宣告介面並宣告Public的Value或Method,透過DI綁定以上介面實作,在需調用的腳本利用DI注入
這樣若需要替換實作只要更換綁定的實作就可以了,不用動到其他參考。
遵守CodeStyle : C# code style in Unity
工具們 : Unity Tools
Unity問題整合 : Unity 避坑指南
Disign Pattens筆記: Game Programming Patterns
其他腳本注入
[Inject]發生在遊戲周期的Awake之前,且為MonoBehaviour掛在場上的物件上,以下特殊狀況