タグ

ブックマーク / hadashia.hatenablog.com (2)

  • VContainer v0.0.1 - Unity用の速くて軽いDIライブラリをリリースしました - @hadashiA

    github.com Unity (ゲームエンジン) で動作する自作DIライブラリを公開しました。 特徴は、 速くて薄くて軽い GCゴミがとても少ない コードファーストでスコープを切れる機能 (Autofac の影響) MonoBehaviourに依存しないカスタムクラスをUnityのライフサイクルに割り込ませる (Zenjectの影響甚大) 独自の PlayerLoopSystem のサブシステムを利用しているので、不特定タイミングでつくったスコープの IInitializable とかも動作する。 コンテナがイミュータブル なのです。 Zenject と比較すると、メソッドチェインをつなげるとなんでも宣言できる(Fluent API) は最低限に、使い方の迷いようがなく透明度の高いAPI を心掛けています。 APIの比較表をつくりました Scopeの親子関係はある程度(ていうかかなり)

    VContainer v0.0.1 - Unity用の速くて軽いDIライブラリをリリースしました - @hadashiA
    tm8r
    tm8r 2020/07/03
  • Unity に mruby 組み込んでる - @hadashiA

    実験的に、Unityにmrubyを組み込んで使ってみてる。 基的には Unity内のコードは全て c# で書くわけだけど、ゲームの基盤部分もすべてc#で書くだけに、それとは別に、ゲームのコンテンツ部分だけを集中して記述できる分離された薄いレイヤがあると便利だ、という話がある。 たとえば、ゲーム内のキャラクタの会話や演技、そういった設定たちが、再コンパイルせずに実行中にホットリロードで変更を確認しつつ開発を進められると嬉しい。 そこで、 mruby を使ってみようかなと思い立った。 もちろん、なにもmrubyを組み込まなくたって、構造化されたただのデータ(たとえばyamlとか…) なんかでも充分、ゲームの内容を表現することはできそうだ。 しかし、それはそれで、決して安い買い物とも言えないような気がする。 複雑なデータ構造は、invalidでないことを完璧に保証するつまらないコードを書くのが

    Unity に mruby 組み込んでる - @hadashiA
    tm8r
    tm8r 2017/09/11
  • 1