mcpField
U
unity-ui-data-binding

unity-ui-data-binding

github.com/muharremtozan开发1761 次安装22 周前更新
代码仓库

关于 unity-ui-data-binding

面向 Unity UI Toolkit 开发者的 C# 数据绑定技能,使用 ViewModel 将游戏数据连接到界面,并根据属性变化自动同步显示。

主要功能

  1. 01BindableProperty 封装数据源
  2. 02采用 MVVM 分离数据与界面
  3. 03属性变化时同步 UI
  4. 04通过 C# 配置绑定

适用场景

  1. 01绑定生命值文本与血条
  2. 02将格式化的 ViewModel 数据呈现到 UI
  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 系统,无需通过“Update”循环逻辑更新 UI。

核心功能

  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),仅在输入项(复选框、文本字段)中使用双向绑定。这样可以确保“事实来源”始终是模型。

评论

支持 Markdown