unity-mvc-pattern について
ゲームデータ、表示、プレゼンテーションロジックを分離する Unity 開発者向けの MVC/MVP スキルです。監視可能なコレクション、パッシブビュー、Presenterによるライフサイクル連携、MMOホットバーの例を提供します。
主な機能
- 01ObservableListの変更通知
- 02パッシブなMonoBehaviourビュー
- 03Presenterによるバインド
- 04MMOホットバーの例
活用シーン
- 01インベントリ画面の構築
- 02スキルツリーや設定画面の実装
- 03ゲーム状態と表示の分離
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ muharremtozan/ unity-agent-skills --skill unity-mvc-patternインストール後、Claude Code で/unity-mvc-patternを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/code/GenericPresenter.cs.txtMMOHotbarExample.cs.txtObservableList.cs.txt詳細
Unity MVC / MVP パターン
このスキルでは、「関心の分離」というアーキテクチャ原則を実装します。コードをモデル(データ)、ビュー(ビジュアル)、プレゼンター(ロジックの橋渡し)の3つの異なるレイヤーに分割します。
主な機能
- ObservableList:データが変更されたときにリスナー(ビュー)へ通知するリアクティブなコレクションです。
- パッシブビュー:ビューはMonoBehaviourで、データの取得元ではなく、データの表示方法だけを扱います。
- 仲介されたロジック:プレゼンターが「接続」とライフサイクルを管理し、データとビジュアルを完全に分離します。
- MMOホットバーパターン:参考文書で説明されている、複数スロットの監視可能なレイアウトを具体的に実装したものです。
主なファイル(最大3個)
ObservableList.cs.txt:構造変更の通知機能を備えたジェネリックコレクションのラッパーです。GenericPresenter.cs.txt:定型コードを使わずにM-V-Pの関係を作成するための基底クラスです。MMOHotbarExample.cs.txt:モデルからUIビューへデータが流れる様子を示す実用例です。
使用方法
1. モデル(データ)
Observable<T>またはObservableList<T>を使って状態を保持します。Unity UIについては認識しません。
2. ビュー(ビジュアル)
状態を更新するためのパブリックメソッド(例:SetHealth(float val))を公開するMonoBehaviourです。
3. プレゼンター(橋渡し)
public class MyPresenter : Presenter<MyModel, MyView> {
protected override void Bind() {
model.health.OnChanged += view.SetHealth;
}
}
使用する場面
ロジックとビジュアルがそれぞれ独立して変更される可能性の高い、複雑なUI(インベントリ、スキルツリー、設定画面)やゲーム全体を管理するマネージャーに、このパターンを使用してください。
コメント
Markdown 対応