unity-ui-data-binding

Installation
SKILL.md

Unity UI Toolkit Data Binding

Connect your game data (Model) to your interface (View) using modern high-performance data binding. This skill leverages Unity's unity.properties system to eliminate "Update" loop logic for UI updates.

Core Features

  1. BindableProperty: A wrapper class that uses [CreateProperty] to expose values to the UI Toolkit binding engine.
  2. MVVM (Model-View-ViewModel): Separates raw game data from UI-formatted data using a ViewModel mediator.
  3. Reactive Synchronization: UI elements update automatically when the underlying property value changes (or is polled by the engine).
  4. C# Based Binding: Set up complex bindings programmatically without relying on the UI Builder's inspector fields.

Core Files (Max 3)

  • BindableProperty.cs.txt: Generic property wrapper for data sources.
  • BindingExample.cs.txt: Practical example showing a Coin display and Health bar bound to a ViewModel.

Usage

1. Define the ViewModel

Initialize BindableProperty fields that return formatted data from your model.

public BindableProperty<string> HealthText { get; }
HealthText = BindableProperty<string>.Bind(() => $"HP: {model.hp}/{model.maxHp}");

2. Set the Data Source

Assign your ViewModel to the dataSource property of your root VisualElement.

root.dataSource = myViewModel;

3. Establish the Binding

Use SetBinding on specific elements to link their properties (text, value, style) to paths in the ViewModel.

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

Key Principle

Always use one-way binding (ToTarget) for displays and two-way binding only for inputs (checkboxes, text fields). This keeps the "Source of Truth" in your Model.

Related skills
Installs
9
GitHub Stars
7
First Seen
Apr 19, 2026