Стратегия active управления для target и origin
Из этого раздела вы узнаете о стратегиях отображения и скрытия объектов по умолчанию для target и origin, а также о том, как их настроить при необходимости.
Перед началом
- Прочитайте Target, чтобы понять основные концепции, состояния и жизненный цикл target.
- Прочитайте XR Origin, чтобы понять основные концепции, состав и жизненный цикл XR Origin.
Active управление и типы стратегий управления
Во время работы session, target и origin проходят изменения состояний, такие как отслеживание и потеря. С помощью стратегии active управления можно автоматически управлять поведением отображения и скрытия объектов под target и origin.
В Unity компонент ActiveController отвечает за автоматическое управление состоянием GameObject.activeSelf объектов target и orign, чтобы отображать контент после отслеживания target или начала отслеживания движения, и скрывать контент до потери target или успешной инициализации отслеживания движения.
ActiveController предоставляет две различные стратегии active управления:
- ActiveWhileTracked: при отслеживании GameObject активируется (GameObject.activeSelf устанавливается в
true); при потере отслеживания GameObject деактивируется (GameObject.activeSelf устанавливается вfalse). - ActiveAfterFirstTracked: до первого отслеживания GameObject деактивируется (GameObject.activeSelf устанавливается в
false); после успешного отслеживания GameObject остается постоянно активным (GameObject.activeSelf устанавливается вtrue).
По умолчанию TargetController использует стратегию ActiveWhileTracked, что означает, что при отслеживании target, target и его содержимое активируются, а при потере отслеживания — деактивируются.
По умолчанию XROriginChildController использует стратегию ActiveAfterFirstTracked, что означает, что до успешной инициализации отслеживания движения origin и его содержимое деактивируются, а после успешной инициализации — остаются постоянно активными.
Выбор другой стратегии active управления
Откройте панель Inspector, в выпадающем меню Strategy выберите Input

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

В скриптах можно переопределить стратегию active управления по умолчанию через свойство OverrideStrategy.
Например, следующий код показывает, как установить стратегию active управления для target в ActiveAfterFirstTracked:
target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;
Изменения стратегии active вступают в силу немедленно, и GameObject.activeSelf обновляется в соответствии с текущим состоянием отслеживания.
Отключение active управления
При необходимости полностью отключить active управление, например, для ручного управления по требованию, можно отключить компонент ActiveController.

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