Zenject

Zenject InterfaceのBindにおけるIdの付け方

BindするInterfaceにIdをつける場合WithIdの書き方が限定される。 BindInterfacesAndSelfTo等を利用してまとめての指定はできなそう。 public class SceneInstaller : MonoInstaller<SceneInstaller> { public override void InstallBindings() { // できない Container.Bind</sceneinstaller>…

Zenjectとかが絡むコンポーネントのUnit Test

Zenjectが絡んだときのUnit Testの例を紹介します。 あくまで例です。 例えば以下のようなHomeUseCaseというクラスのテストを行う場合を考えます。 using System.Collections; using System.Collections.Generic; using UnityEngine; using UniRx; using Zen…

Zenject BindのAsSingle, AsCached, AsTransientの違い

Zenjectを使い始めて、最初の方に?ってなるのがAsSingle(), AsCached(), AsTransient()な気がします。 正直ZenjectのREADMEを何度読んでもイマイチよくわからない。 いろいろ挙動を調べたので解説します。 Scopeとは AsSingle(), AsCached(), AsTransient()…

ZenjectのGameObjectContextの使い方

ZenjectにおいてSceneContextはとっつきやすいですが、 長い間GameObjectContextってどう使っていいかイマイチだったりしてました。 日本語の解説も少ないですし。 今回はそんなGameObjectContextの使い方を調べたので紹介します。 GameObjectContextの基本…

ZenjectDefaultSceneContractConfigで依存するSceneContextを確認用に自動ロード

UnityのZenjectの他の機能の紹介をしようかと思ったところ、 ZenjectDefaultSceneContractConfigという機能を発見。 おそらくv6.1.0くらいから追加されたっぽいんですが、 個人的には全俺が湧く感じの機能、圧倒的僥倖だったのでこちらを紹介します。 Projec…

ZenjectのScene Decorator Contextの使い方

最近、UnityのプロジェクトではZenjectを使っており、 1年くらい実プロジェクトで運用してようやくコツがわかってきた気がする。 しかしながら、 Scene Decorator Contextがどんなものかをあまり理解しておらず調査したのでメモ。 そもそもZenejectのContex…