Skip to content

drumath2237/DI-Used-Pure-MVP-testbed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DI-Used-Pure-MVP-testbed

badge

About

UnityにおけるMVPアーキテクチャの実装について、Viewコンポーネント以外を非MonoBehaviourなロジックにした場合にどうなるのかを試すためのプロジェクト。 IoCやコンストラクタ制約による依存関係の明確化、テステビリティの向上などに期待してやってみたが、 あまり実践的だとは思わなかった。 DIコンテナとしてVContainerを使用している。

Usage

Assets/Pure-MVP-Testbed/Scenes/Main.unityを再生すると、以下のような簡単なシーンが実行される。

  • HPがゲージとラベルで可視化されている
  • ボタンによってHPを増減させることができる
mvp-testbed.mp4

Architecture

img

PlantUML

HPの表示周りにまつわるロジックとゲーム全体のロジックがあり、この二つのMVPが親子関係になっている。 ボタンによるHPの増減をHPにまつわるロジックに含めることもできたが、Presenterの親子関係を構成したかったためこのようにしている。

2つのViewコンポーネントのみがMonoBehaviourを継承しており、他はPure C#なクラスである。 またGamePresenterはVContainerのIStartableインターフェースを実装しており、エントリポイントとして機能する。

License

本来プロジェクトはUniRx およびVContainer を使用しています。

About

A testbed project for unity MVP architecture implementation.

Topics

Resources

License

Stars

Watchers

Forks

Languages