Unity/DIフレームワーク/Extenject/非MonoBehavior
提供: 初心者エンジニアの簡易メモ
2023年11月15日 (水) 03:41時点におけるAdmin (トーク | 投稿記録)による版 (ページの作成:「==非MonoBehavior== MonoBehaviorではないが、MonoBehaviorのように動かせるクラスをDIする方法。 参考:https://light11.hatenadiary.com/entry/2019/0...」)
非MonoBehavior
MonoBehaviorではないが、MonoBehaviorのように動かせるクラスをDIする方法。
参考:https://light11.hatenadiary.com/entry/2019/02/28/001135
サンプル
MonoBehaviourInstaller.cs
using Zenject; using System; public class MonoBehaviourInstaller : MonoInstaller { public override void InstallBindings() { Container .Bind( typeof(MonoBehaviourLogic), typeof(IInitializable), typeof(ITickable), typeof(ILateTickable), typeof(IFixedTickable), typeof(IDisposable) ) .To<MonoBehaviourLogic>() .AsTransient(); } }
MonoBehaviourMain.cs
using UnityEngine; using Zenject; public class MonoBehaviourMain : MonoBehaviour { [Inject] MonoBehaviourLogic _logic; }
MonoBehaviourLogic.cs
using UnityEngine; using Zenject; using System; public class MonoBehaviourLogic : IInitializable, ITickable, ILateTickable, IFixedTickable, IDisposable { public void Initialize() { Debug.Log("initialize."); } public void Tick() { Debug.Log("Tick."); } public void LateTick() { Debug.Log("LateTick."); } public void FixedTick() { Debug.Log("FixedTick."); } public void Dispose() { Debug.Log("dispose."); } }