こちらの記事で Zenject の一歩目を踏み出しました。


今回は、二歩目。
動的に生成されるオブジェクトに Inject する方法。というか、DI 可能な状態でオブジェクトを生成する方法です。

(普通に GameObject の Instantiate メソッドで生成すると、生成されたオブジェクト内のスクリプトで Inject 指定していても、Inject されません)

サンプルコード

さっそくサンプルコード。こんな感じ。


(16行目) まずは [Inject] DiContainer container; のようにして、DIコンテナを Inject します。DIコンテナは ZenjectBinding などでバインド設定しなくても呼び出せるようです。

(23~25行目) そして、生成処理は DiContainer の InstantiatePrefab メソッドを使って行います。

これだけ。
ほかにも複数のやり方があるようなのですが、これがいちばん簡単かな。。。


Zenject のすべてを理解するのはとても大変そうですが、こんな感じで一歩ずつ理解していきたいなと思っています。というか、あまり深入りせずに必要最小限の範囲で利用したいなと。


参考資料


今回は以上です。