Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tinrab/databind

Simple data binding for Unity
https://github.com/tinrab/databind

databind unity

Last synced: 2 months ago
JSON representation

Simple data binding for Unity

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`

![alt text](docs/Component.png)

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

![alt text](docs/View.png)

## 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.

![alt text](docs/BindProperty.png)