https://github.com/tinrab/databind
Simple data binding for Unity
https://github.com/tinrab/databind
databind unity
Last synced: about 1 year ago
JSON representation
Simple data binding for Unity
- Host: GitHub
- URL: https://github.com/tinrab/databind
- Owner: tinrab
- License: mit
- Created: 2016-03-22T05:41:05.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-11-23T05:23:23.000Z (over 9 years ago)
- Last Synced: 2025-03-26T13:21:20.982Z (about 1 year ago)
- Topics: databind, unity
- Language: C#
- Homepage:
- Size: 7.41 MB
- Stars: 71
- Watchers: 7
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DataBind
Simple data binding for unity.
## Usage
1. Import package file DataBind.unitypackage into Unity
2. Add `DataBindContext` to parent object
3. Add `Bind*` components to children
4. Use `dataBindContext[key] = value` to bind values
Check out Demo/DemoScene for details.
## Bind Text
Surround keys with double curly braces in UI Text and set values in parent `DataBindContext`

```csharp
var context = GetComponent();
context["Username"] = "Bobby";
```
Result:

## Custom Binds
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.
```csharp
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];
}
}
}
```
## Bind any property
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.
