Property Binding
Bind a Shared Variable to a property
A property binding maps a Shared Variable to a C# property on a project component, so both the tree and the component read and write one value. Given this component:
public class Health : MonoBehaviour
{
[Tooltip("The starting health value")]
[SerializeField] protected float m_StartHealth = 100;
private float m_HealthAmount;
public float HealthAmount { get => m_HealthAmount; set => m_HealthAmount = value; }
}
Right-click the Shared Variable row in the Shared Variables panel and select Enable Property Binding, then choose the object and property:

Keep both sides synchronized
Once bound, reading or writing the variable’s Value calls the bound property’s getter or setter instead of using the variable’s own stored value. No copy step or manual synchronization is required.
The binding is resolved when the Shared Variable initializes, and the getter and setter are cached as delegates rather than invoked through reflection on each access.
Requirements
- The target must be a public instance property. Fields are not supported.
- The property must expose both a public getter and a public setter. A read-only or write-only property cannot be bound.
- The property type must match the Shared Variable type.
- A bound variable cannot be moved to Project scope.
If the bound type, property, getter, or setter cannot be resolved at initialization, Behavior Designer logs the reason and the variable falls back to its own stored value. Check the Console when a bound variable appears to hold a stale value.