タグ

ブックマーク / adarapata.hatenablog.com (4)

  • Zenject Decorator Binding - imog

    ZenjectにはDecoratorパターンをサポートするDecorator Bindingなる機能があったりします。あんまりメインで使うような機能ではありませんが覚えておくと便利かもしれません。 github.com Decorator パターン DecoratorパターンはGoFで定義されてるデザインパターンの一つです。既存のオブジェクトに対して動的な機能追加を行う場合などに効果を発揮します。 例えば超絶シンプルなRPGを作るときに、攻撃力とHPを持つクラスがあるとします。ステータス部分は共通のインタフェースとして、戦士と魔法使いの二種類を作ります。 public interface IStatus { int Life { get; } int Attack { get; } } public class Knight : IStatus { public int Life => 2

    Zenject Decorator Binding - imog
  • Zenjectを使うときに気を付けていること - imog

    このエントリはUnity Advent Calendar 20194日目のやつです。 Zenjectは便利ですが、実際に扱っている人の知見やtipsがまだまだ世に出回ってない印象です。APIの使用方法も欲しいですが実際に使ってる人たちがどういうお気持ちで使っているのかというのはどんどん出回って欲しいので、今回は僕がZenjectを使う際にチョットだけ気を付けていることを列挙します。 そんなにテクニカルなことではなく心持ちみたいなのが多めです。 これが正しい!というのは中々決められないと思うので、1つの考え方として参考になれば幸いです。 基的にコンストラクタインジェクションを行う intefaceをBindする primitiveな型をBindしない ListをBindしない 手動でもDIできるようにする Validateを使う DiContainerを持ち歩かない 積極的にSubCont

    Zenjectを使うときに気を付けていること - imog
    edo_m18
    edo_m18 2019/12/07
    良記事。Zenject完全に理解したい。
  • Zenject Signals - imog

    記事は Unity Advent Calendar 2018 の 13日目 の記事です。 qiita.com 普段Zenjectを趣味で使っているのですが、Zenjectは基的なDIContainer機能の他に、ちょっとDIから離れた便利機能をいくつか提供しています。MemoryPool TestFrameWork Reflection Baking Signal などです。今回はこれらの中で Signal の使い方について解説していきます。 Pub/Subの話 Signalsの話をする前に、Signalsの考え方であるPub/Subについて軽く解説していきます。 メッセージング ゲームはイベント駆動が多いので、状態の変更を通知したくなるときが結構あります。ゲーム開始したらキャラクタを動かし始めたいとか、時間切れを知らせてプレイヤーの操作を受け付けなくしたりとか。そんなとき、通知元と通

    Zenject Signals - imog
  • ZenjectのConstructionMethodたち - imog

    ZenjectでBindするとき、そのインスタンスをどのように用意するかという設定が必要です。その場で初期化するのか、既存のインスタンスを引っ張ってくるのかなど。これらはコンストラクションメソッドと呼ばれており、READMEに全部書かれています。 github.com 割と数が多いのでまとめてみました。間違っているものがあればコメントなどもらえるとありがたいです。 FromNew() FromInstance(T instance) FromMethod(Func<T> method) FromMethod(Func<InjectContext, T> method) FromMethodMultiple(Func<IEnumerable<T>> method) FromMethodMultiple(Func<InjectContext, IEnumerable<T>> method) F

    ZenjectのConstructionMethodたち - imog
  • 1