ZenjectのいろんなInstallerの使い方を紹介します。
Unity2018.2
Zenject7.3.1
Installer?
Scene ContextやProject ContextのInspectorを見ると、三つのInstallersの設定欄があります。
この記事ではこれらの使い方と設定方法を紹介します。
なおZenjectの基本的なところは下記の記事をご覧ください。
Mono Installers
一番よく使うのがMono Installerです。
使い方としては、Mono Installerを継承したクラスを作り、InstallBindings()
にDIの処理を書きます。
using Zenject; public class ExampleInstaller : MonoInstaller { public override void InstallBindings() { Container .Bind<Example>() .AsTransient(); } }
これを適当なGameObjectにアタッチしてContextのMono Installersに代入するだけです。
Prefab Installers
Prefab Installersは前節で作ったMono InstallerをPrefab化しただけのものです。
これをContextのPrefab Installersに代入すれば使えます。
Scriptable Object Installers
Scriptable Object Installerはその名の通りScriptable ObjectをInstallerとして使うためのクラスです。
ScriptableObjectなのでランタイムで値を更新できるというメリットがあります。
使い方としては、まずScriptableObjectInstallerを継承したクラスを作成します。
using UnityEngine; using Zenject; [CreateAssetMenu(fileName = "ExampleSOInstaller", menuName = "Installers/ExampleSOInstaller")] public class ExampleSOInstaller : ScriptableObjectInstaller<ExampleSOInstaller> { public override void InstallBindings() { Container .Bind<Example>() .AsTransient(); } }
次に右クリックメニューなどからScriptableObjectのインスタンスを作成します。
この辺りは通常のScriptableObjectの使い方と変わりません。
あとはこれをContextのScriptable Object Installersに代入するだけです。