Simple data binding for unity.
- Import package file DataBind.unitypackage into Unity
- Add
DataBindContext
to parent object - Add
Bind*
components to children - Use
dataBindContext[key] = value
to bind values
Check out Demo/DemoScene for details.
Surround keys with double curly braces in UI Text and set values in parent DataBindContext
var context = GetComponent<DataBindContext>();
context["Username"] = "Bobby";
Result:
Package contains components for binding UI Text, UI Image's sprite and UI Graphics's color. Custom binds can be created simply by implementing IBindable
interface.
using UnityEngine;
using UnityEngine.UI;
public class BindPosition : MonoBehaviour, IBindable
{
[SerializeField]
private Transform m_Target;
[SerializeField]
private string m_Key;
public void Bind(DataBindContext context)
{
if (context.ContainsKey(m_Key)) {
m_Target.position = (Vector3)context[m_Key];
}
}
}
You can bind any two properties using BindProperty
component. Currently, there is no type checking. If destination property is of type String
, then source will be converted using ToString
method.