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

Импортировать готовый пример можно отсюда 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\FindAura\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, если ничего не найдет. Это контракт именно этих методов дерева; по одному префиксу не стоит делать вывод обо всех API.

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

Путь с . строится от контекста скрипта: в показанной структуре Switch и Script — соседи в папке FindAura. Абсолютный путь начинается от корня дерева без имени корневой папки. Результат — заимствованный accessor ауры; он не создаёт новую ауру и не требует Dispose. IsActive читается как bool?: true, false или null, если состояние не определено. Это снимок свойства в момент чтения, не подписка на изменения.

Дальше

Контекст скрипта · Дерево аур · Аура

Контракты сверены со срезом EyeAuras 20fd3d4 и PoeEye 0e02c98. Полные сигнатуры смотрите в SDK/XML своей версии; наличие символа не подтверждает доступность внешнего пакета или нативного компонента. Пример здесь не проверялся компиляцией или запуском.