Unityに関連する記事です

 (作成中)



DI コンテナ 


 DI コンテナとは、UnityでC#を使って開発を行う際に、依存性の注入(Dependency Injection: DI)を行うための仕組みを提供するコンテナのことです。
依存性の注入とは、オブジェクト指向プログラミングにおいて、クラスやオブジェクトの依存関係を解決するデザインパターンの1つです。
DIコンテナは、依存関係のあるオブジェクトを自動的に生成し、適切な状態で提供する役割を果たします。

 依存性の注入という言葉で考えるとイメージすることが難しいため、
プログラムのパーツ(クラスやオブジェクト)がお互いにうまく協力しながら動くように、
関係を整理してくれる役割を果たす、と考えておくとよいです。
これにより、コードがきれいでメンテナンスしやすくなります。


VContainer


 VContainer(ブイ・コンテナ)は、Unity向けの軽量なC# DIコンテナの1つで、高速で拡張性に優れています。
VContainerは、依存性の解決を行うために、コンポーネントやサービスのライフタイム管理を提供します。
また、アセンブリ定義やジェネリック型のサポートなど、Unityとの親和性が高い特徴があります。
このため、Unityプロジェクトでの開発を効率化するために利用されることが多いです。


VContainer


Qiita @sakano 様VContainer入門


note アップフロンティア株式会社 様
VContainer入門 – MVPパターンを組んでみる



サンプルコード


 以下は VContainer とインターフェースを利用して、ゲームの初期化処理を行う際の実装例です。


<= クリックすると開きます


 上記のコードでは、IInitializableインターフェースを実装したクラスをVContainerで自動的に取得し、Start関数内でInitialize関数を順次呼び出しています。

 GameInitializerには、インスペクター上でInject属性を付けることで、
ゲーム開始時にVContainerがIInitializableを実装したクラスを自動的に取得し、initializablesに格納します。

 その後、foreach文を使ってinitializables内の全てのオブジェクトに対してInitialize関数を呼び出し、ゲームの初期化処理を行っています。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます