大部分碰過濫用MonoBehaviour的狀況都是需要每偵執行邏輯的情況。跟singleton的濫用狀況類似,通常都是為了快速完成當前的功能,而沒有好好思考軟體架構。
看看下面的例子:
Path of gameplay programming
可能有人會覺得,Part 2開頭所描述的功能,用MonoBehaviour-base寫會快很多。
因此我在這一篇比較一下DI與MonoBehaviour-base在開發上的不同。
閱讀全文〈Dependency Injection in Unity3D Part 3: DI v.s. MonoBehaviour-base〉
延續上一篇的例子,
接下來都會以Zenject這個DI框架來做範例
設想一個例子:我們正在做一個規模很小、很簡單的2D動作遊戲。
假設遊戲會有一個英雄(Hero),攜帶著各種不同的武器(Weapon)。
我們現在要先實踐出可以讓玩家攻擊的功能,程式碼看起來可能像這樣