Получение статуса 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 и способы ее настройки при необходимости.