用途:把游戏数据(Model)与 Unity UI Toolkit 界面(View)通过现代高性能数据绑定连接起来,利用 Unity 的 unity.properties 系统消除用于刷新 UI 的 Update 循环逻辑。
主要能力:BindableProperty 是一个包装类,使用 [CreateProperty] 把值暴露给 UI Toolkit 绑定引擎;采用 MVVM(Model-View-ViewModel)模式,通过 ViewModel 中介把原始游戏数据与 UI 格式化数据分离;支持反应式同步,底层属性值变化(或被引擎轮询)时 UI 元素自动更新;支持用 C# 以编程方式建立复杂绑定,而不依赖 UI Builder 的 inspector 字段。
核心文件(最多 3 个):BindableProperty.cs.txt 为数据源的通用属性包装器;BindingExample.cs.txt 为把金币显示和生命条绑定到 ViewModel 的实用示例。
使用方式:先在 ViewModel 中定义 BindableProperty 字段,返回来自 Model 的格式化数据,例如 public BindableProperty<string> HealthText { get; } 并用 BindableProperty<string>.Bind(() => $"HP: {model.hp}/{model.maxHp}") 初始化;再把 ViewModel 赋值给根 VisualElement 的 dataSource 属性,如 root.dataSource = myViewModel;最后对具体元素用 SetBinding 把其属性(text、value、style 等)链接到 ViewModel 的路径,如 label.SetBinding("text", "HealthText.Value")。
关键原则:显示类一律使用单向绑定(ToTarget),仅输入控件(复选框、文本字段)使用双向绑定,使“真相来源”保留在 Model 中。
限制:资料未提供具体版本要求、兼容平台、收费或性能数据,暂未提供。