Как найти ауру

Импортировать готовый пример можно отсюда https://eu.eyeauras.net/share/S202402232313367YDKhksLfySg

А зачем?

Чтобы считать текущее состояние, имя или какие-либо действия и триггеры внутри самой ауры, для начала нужно найти ее саму, а уже затем можно пошарить внутри.

Что будем делать?

Очень часто бывает, что из скрипта нужно получить какие-то результаты работы триггеров. К примеру, распознанный текст или координаты найденной картинки. Для начала, давайте попробуем самое простое - узнаем, какое в данный момент у ауры состояние, т.е. активна она или нет.

Предварительные шаги

Давайте для начала настроим то, с чем мы будем работать из скрипта

  • Создадим в корне программы папку Examples и в ней подпапку FindAura
  • Создадим в подпапке ауру Switch
  • В ауре Switch добавим триггер Fixed Value. По сути это просто ручной переключатель.
  • Теперь создадим рядом еще одну ауру Script (можете подключить фантазию, имя этой ауры нам не важно)
  • В ауре Script создадим OnEnter действие C# Script
  • Выглядеть должно примерно так

А теперь

csharp
var aura = AuraTree.GetAuraByPath(@".\Switch"); // or by absolute path AuraTree.GetAuraByPath(@"Examples\FindTrigger\Switch");

// print the status, it will be true/false or null (for undefined state)
Log.Info($"Aura {aura.FullPath} IsActive: {aura.IsActive}");

Разберем

Чтобы получить доступ к дереву аур (штука слева, где ваши ауры и папки), мы обращаемся к AuraTree. Метод GetAuraByPath умеет искать по абсолютному или относительному пути. Если аура не будет найдена - он прервет скрипт с ошибкой. У него есть брат-близнец, который называется FindAuraByPath, который вернет null, если ничего не найдет. Эта схема с Get* и Find* будет встречаться много где и вы всегда можете расчитывать на такое поведение.

Далее, когда мы нашли ауру, мы можем прочитать ее текущее состояние из свойства IsActive. Помимо этого там есть еще несколько важных и полезных вещей, таких как имя ауры, триггеры и действия, которые в ней и т.п. К этому мы обратимся в следующих примерах.