Table of Contents

Получение состояния цели

В процессе работы сессии цель проходит через различные состояния, такие как отслеживание и потеря. Ниже вы узнаете, как получать и использовать информацию о состоянии цели, а также как использовать события found и lost для управления отображением контента.

Перед началом

  • Ознакомьтесь с основными концепциями, компонентами и рабочим процессом сессии в разделе Введение в ARSession.
  • Узнайте основные концепции, состояния и жизненный цикл цели в разделе Цель.

Определение отслеживания цели

Для проверки, отслеживается ли цель, можно использовать свойство TargetController.IsTracked.

Использование событий found и lost цели

События TargetController.TargetFound и TargetController.TargetLost позволяют обрабатывать ситуации, когда цель отслеживается или потеряна.

Например, следующий код демонстрирует воспроизведение видео при отслеживании цели и паузу при её потере:

target.TargetFound += () =>
{
    if (player && player.gameObject.activeInHierarchy)
    {
        player.Play();
    }
};
target.TargetLost += () =>
{
    if (player && player.gameObject.activeInHierarchy)
    {
        player.Pause();
    }
};
Осторожно

Если цель не выгружена вручную, событие TargetController.TargetLost может быть вызвано при остановке сессии. Если сессия не остановлена вручную, это может произойти во время процесса OnDestroy сессии. Поскольку порядок выполнения OnDestroy в Unity не гарантирован, объекты, используемые в событии, должны проверяться на валидность, чтобы избежать обращения к уже уничтоженным объектам в процессе OnDestroy.

Следующие шаги

  • Стратегия управления active описывает политику отображения и скрытия объектов по умолчанию для цели и способы её адаптации под конкретные нужды.