Избранное Все заметки GitHub icon Мой Github Обо мне

Unity UI data binding

Как отделить логику от интерфейса в Unity, чтобы не получилась каша?

Есть давно устоявшиеся паттерны и «best practices». Хотя для Unity последних не так уж и много, как например для node.js. Можно использовать эвенты, делегаты, обсерверы, вот это все, если говорить об использовании C# в Unity. Есть и готовые ассеты в Asset Store.

В общем, это то, что я начал писать сам, но вовремя нашел почти готовое решение, которое меня устраивает. После небольшого допиливания будет вообще супер — библиотека для простого биндинга в Unity.

Работает все очень просто:

  1. Импортируете DataBind.unitypackage в Unity
  2. Добавляете скрипт DataBindContext к родительскому объекту
  3. Добавляете скрипт Bind[нужный тип] к основным объектам
  4. Вызываете dataBindContext[key] = value для биндинга
  5. Все. Присвоили значение переменной — оно поменялось в UI Text, например.

Можно связывать любые параметры, использовать готовые биндинги которые идут в пакете, можно написать свой. И все достаточно просто и не ресурсоемко.

Ссылка на Github

Обновление 25.01.2017
У Leopotam «прокачанная» версия биндинга https://github.com/Leopotam/LeopotamGroupLibraryUnity/tree/master/SystemUi/DataBinding

Поделиться
Отправить
Запинить
Популярное