Инструмент разработки
Behavior Graph
Собственный инструмент Behavior Tree для Unity: графовый редактор и runtime для настройки поведения противников.
О проекте
Behavior Graph — собственный инструмент для создания и настройки деревьев поведения в Unity. Он объединяет графовый редактор в Unity Editor и runtime-исполнение дерева, чтобы поведение противников можно было собирать из наглядных узлов и хранить вместе с игровыми ассетами.
Что реализовано
- Граф поведения хранится в
ScriptableObject: в ассете сохраняются узлы, их связи, корневой узел и позиции на рабочем поле. - Редактор построен на
GraphView: можно добавлять узлы через поиск, соединять и отсоединять их, перемещать по холсту и назначать корневой узел. - Поддерживаются составные узлы
Selector,SequenceиParallel, а также декораторыInvert,Force SuccessиTimeout. - В библиотеку действий входят ожидание, проверка условий, выполнение стратегии движения, атака цели и нанесение урона по области.
- Runtime управляет жизненным циклом каждого узла: входом, выполнением, завершением и принудительной остановкой. Результаты узлов передаются через состояния
Success,FailureиRunning.
Отладка поведения
Во время Play Mode редактор связывается с выбранным игровым объектом, использующим открытый граф, и подсвечивает состояние его runtime-узлов. Это помогает видеть, какая ветка дерева выполняется в данный момент, и быстрее разбирать логику поведения противника.
Техническая основа
Данные графа отделены от runtime-узлов: сериализуемые описания узлов преобразуются в исполняемые объекты через фабрики. Связи между узлами контролируются по допустимой ёмкости дочерних элементов, а порядок дочерних узлов в составных элементах определяется их положением в графе. Такой подход позволяет редактировать поведение визуально и сохранять его как часть Unity-проекта.