IsActive

CheckIsActive — это специальная нода, которую используют как в макросах, так и в behaviour trees (деревьях поведения) в EyeAuras. Эта нода нужна для того, чтобы прямо из дерева проверить, активно ли оно сейчас, и если нужно — прервать выполнение дерева заранее.

Params

Для чего она нужна?

В самом начале каждого тика дерево не запустится, если оно выключено (например, если вы убрали галочку активности). Однако иногда бывает нужно проверить статус дерева не только в самом начале, а на любом этапе внутри выполнения макроса или дерева. В таких случаях и используется CheckIsActive. Она позволяет:

  • Проверить — не выключено ли активное сейчас дерево или макрос?
  • Если дерево выключено (или наоборот, включено — зависит от параметров), завершить выполнение прямо сейчас с нужным статусом (Failure или Success).

Пример ситуации: вы хотите, чтобы дерево могло досрочно завершиться, если его деактивировали во время работы — тогда вставляете CheckIsActive в нужное место дерева.

Invert

У CheckIsActive есть настройка Invert — при включении этого параметра нода будет проверять НЕ активность, а наоборот, НЕАКТИВНОСТЬ дерева/macros:

  • Если Invert = выключен (по умолчанию): нода возвращает Success, когда дерево или макрос активен, и Failure, когда нет.
  • Если Invert = включён: всё наоборот — Success, когда дерево неактивно, и Failure, когда активно.

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

Как работает CheckIsActive

  • Вставьте ноду в нужное место дерева или макроса.
  • При тике она проверит текущий статус активности.
  • Можно использовать в связке с другими нодами для досрочного завершения дерева (например, в Sequence или Selector).

Простой пример

text
Sequence
 ├── CheckIsActive (Invert = false)   ← Проверяет, что дерево активно
 ├── DoSomething                      ← Исполнится, если дерево активно

В этом примере, если дерево выключили во время работы, последовательность завершится Failure и дальше действия не выполнятся.

CheckIsActive помогает делать сценарии более контролируемыми, если важно быстро реагировать на изменения статуса (активности) дерева или макроса прямо изнутри цепочки событий.