Dependency Injection in Unity3D Part 1: 什麼是相依性注入?

設想一個例子:我們正在做一個規模很小、很簡單的2D動作遊戲。
假設遊戲會有一個英雄(Hero),攜帶著各種不同的武器(Weapon)。
我們現在要先實踐出可以讓玩家攻擊的功能,程式碼看起來可能像這樣

閱讀全文〈Dependency Injection in Unity3D Part 1: 什麼是相依性注入?〉

不要依賴Singleton Pattern

注意我說的是依賴,不是說完全不該用。

你對下面的情境很熟悉嗎?

現在你有一個Enemy類別,你希望它能夠知道玩家的位置,因此他需要擁有Player物件的transform。因為Enemy實體通常都是執行期產生的,所以你不會想用GameObject.Find(如果你還不知道,你現在該知道了),也不可能使用Serialized Field。

通常下一瞬間就是,「把Player變成singleton」。嗯...好吧!的確如果你的Player實體只會有一個,那麼使用singleton好像也是可以接受的。

閱讀全文〈不要依賴Singleton Pattern〉