Table of Contents

Получение статуса target

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

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

  • Изучите основные понятия, состав и workflow session в ARSession introduction.
  • Изучите основные понятия, статус и lifecycle target в Target.

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

Можно использовать свойство TargetController.IsTracked, чтобы определить, отслеживается ли target.

Использование events found и lost у target

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

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

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

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

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

  • active control policy описывает default show and hide policy для объектов под target и способы ее настройки при необходимости.