mcpField
U
unity-ui-data-binding

unity-ui-data-binding

github.com/muharremtozan開発1761 回インストール22 週間前に更新
リポジトリ

unity-ui-data-binding について

Unity UI Toolkit 向けの C# データバインディングスキルです。ViewModel を介してゲームデータと UI を結び、プロパティの変更に応じて表示を同期します。

主な機能

  1. 01BindableProperty によるデータソースのラップ
  2. 02MVVM によるデータと UI の分離
  3. 03プロパティ変更時の UI 同期
  4. 04C# によるバインディング設定

活用シーン

  1. 01HP テキストとバーの連携
  2. 02整形した ViewModel データの表示
  3. 03入力欄の双方向バインディング設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/muharremtozan/unity-agent-skills --skill unity-ui-data-binding

インストール後、Claude Code で/unity-ui-data-bindingを入力して読み込まれたか確認します。

同梱ファイルassets/code/BindableProperty.cs.txtassets/code/BindingExample.cs.txt

詳細

Unity UI Toolkit のデータバインディング

最新の高パフォーマンスなデータバインディングを使用して、ゲームデータ(モデル)をインターフェース(ビュー)に接続します。このスキルでは、Unity の unity.properties システムを活用し、UI 更新のための「Update」ループ処理をなくします。

主な機能

  1. BindableProperty:[CreateProperty] を使用して、UI Toolkit のバインディングエンジンに値を公開するラッパークラスです。
  2. MVVM(モデル・ビュー・ビューモデル):ビューモデルの仲介により、生のゲームデータを UI 用にフォーマットされたデータから分離します。
  3. リアクティブな同期:基盤となるプロパティの値が変更されたとき(またはエンジンによってポーリングされたとき)、UI 要素が自動的に更新されます。
  4. C# ベースのバインディング:UI Builder のインスペクターフィールドに頼らず、複雑なバインディングをプログラムから設定できます。

主要ファイル(最大 3 個)

  • BindableProperty.cs.txt:データソース用の汎用プロパティラッパーです。
  • BindingExample.cs.txt:ビューモデルにバインドされたコイン表示と体力バーの実用例です。

使用方法

1. ビューモデルを定義する

モデルからフォーマット済みデータを返す BindableProperty フィールドを初期化します。

public BindableProperty<string> HealthText { get; }
HealthText = BindableProperty<string>.Bind(() => $"HP: {model.hp}/{model.maxHp}");
2. データソースを設定する

ビューモデルを、ルートの VisualElement の dataSource プロパティに割り当てます。

root.dataSource = myViewModel;
3. バインディングを確立する

特定の要素で SetBinding を使用し、そのプロパティ(テキスト、値、スタイル)をビューモデル内のパスにリンクします。

label.SetBinding("text", "HealthText.Value");

重要な原則

表示には常に一方向バインディング(ToTarget)を使用し、双方向バインディングは入力(チェックボックス、テキストフィールド)にのみ使用してください。これにより、モデルが「信頼できる唯一の情報源」として保たれます。

コメント