Table of Contents

Стратегии управления активностью для target и origin

В этом разделе вы узнаете о стратегиях отображения и скрытия объектов по умолчанию для target и origin, а также о том, как их настроить при необходимости.

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

  • Прочитайте Target, чтобы понять основные концепции, состояния и жизненный цикл target.
  • Прочитайте XR Origin, чтобы понять основные концепции, состав и жизненный цикл XR Origin.

Управление активностью и типы стратегий

Во время работы сессии target и origin проходят изменения состояний, такие как отслеживание и потеря. С помощью стратегий управления активностью можно автоматически управлять поведением отображения и скрытия объектов, связанных с target и origin.

В Unity компонент ActiveController отвечает за автоматическое управление состоянием GameObject.activeSelf объектов target и origin, чтобы отображать контент при отслеживании target или начале отслеживания движения, и скрывать его при потере target или до успешной инициализации отслеживания движения.

ActiveController предоставляет две различные стратегии управления активностью:

По умолчанию TargetController использует стратегию ActiveWhileTracked, что означает: при отслеживании target, сам target и связанный с ним контент активируются, а при потере отслеживания - деактивируются.

По умолчанию XROriginChildController использует стратегию ActiveAfterFirstTracked, что означает: до успешной инициализации отслеживания движения, origin и связанный с ним контент деактивированы, а после успешной инициализации - остаются постоянно активными.

Выбор другой стратегии управления активностью

Откройте панель Inspector, в выпадающем меню Strategy выберите Input

alt text

Затем справа выберите нужную стратегию управления активностью, чтобы переопределить стратегию по умолчанию.

alt text

В скриптах можно переопределить стратегию управления активностью по умолчанию с помощью свойства OverrideStrategy.

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

target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;

Изменения стратегии активности вступают в силу немедленно, и состояние GameObject.activeSelf обновляется в соответствии с текущим состоянием отслеживания.

Отключение управления активностью

Если необходимо полностью отключить управление активностью (например, для ручного управления), это можно сделать, отключив компонент ActiveController.

alt text

В скриптах управление активностью можно отключить, установив свойство ActiveController.enabled.

target.ActiveController.enabled = false;

Изменение свойства ActiveController.enabled вступает в силу немедленно, и состояние GameObject.activeSelf больше не будет обновляться на основе состояния отслеживания. Если компонент ActiveController снова включить, состояние GameObject.activeSelf будет обновлено в соответствии с текущим состоянием отслеживания.