Дерево поведения целиком состоит из узлов ("нод"), каждая из который что-то умеет - жать кнопки, проверять условия и т.п.
Абсолютно все ноды по результатам выполнения возвращают статус - это может быть:
- Success - кнопка нажалась, картинка нашлась и т.п.
- Failure - тут ровно наоборот - что-то не вышло сделать (выбрать действие или условие не выполнено)
- Running - нода начала работу, но еще не закончила. Так бывает, когда действие, которое делает нода занимает какое-то длительное время, т.е. больше одного тика. Обычно это значит, что все дерево будет дожидаться, пока нода не закончит свою работу вернув Success или Failure. Классический пример - нода Wait, которая просто тормозит все дерево, пока не пройдет указанное время
- Root - корень всего дерева, содержит общие настройки
- Sequence - обходит дочерние ноды до тех пор, пока не найдут ту, которая вернет
Failure
- Selector - обходит дочерние ноды до тех пор, пока не найдет ту, которая вернет
Success
- Aura Is Active - позволяет аказывать одну или несколько аур, которые будут служить условиями для ноды
- Execute Aura - позволяет указывать ауру, действия которой будут выполнены при запуске ноды
- Key Press - нажимает на клавишу или комбинацию клавиш
- Wait - приостанавливает выполнение дерева на указанное время
- Cooldown - предотвращает слишком частое выполнение той или иной ноды
- Inverter - инвертирует состояние дочерней ноды (
Success
=> Failure
и наоборот)
- Force Failure - выполняет дочернюю ноду, но всегда возвращает
Failure
- Force Success - выполняет дочернюю ноду, но всегда возвращает
Success
- Until Success - выполняет дочернюю ноду до тех пор, пока она не вернет
Success
- Fixed Status - вспомогательная нода, позволяет жестко задать статус, который вернет нода, помогает при отладке/настройке
- Сomment - позволяет писать комментарии к логике прямо в дереве