Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/tinrab/databind
- Owner: tinrab
- License: mit
- Created: 2016-03-22T05:41:05.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-11-23T05:23:23.000Z (about 8 years ago)
- Last Synced: 2024-11-10T21:40:51.254Z (2 months ago)
- Topics: databind, unity
- Language: C#
- Homepage:
- Size: 7.41 MB
- Stars: 69
- Watchers: 8
- 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 valuesCheck 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)