Стратегии управления активностью для target и origin
В этом разделе вы узнаете о стратегиях отображения и скрытия объектов по умолчанию для target и origin, а также о том, как их настроить при необходимости.
Перед началом
- Прочитайте Target, чтобы понять основные концепции, состояния и жизненный цикл target.
- Прочитайте XR Origin, чтобы понять основные концепции, состав и жизненный цикл XR Origin.
Управление активностью и типы стратегий
Во время работы сессии target и origin проходят изменения состояний, такие как отслеживание и потеря. С помощью стратегий управления активностью можно автоматически управлять поведением отображения и скрытия объектов, связанных с target и origin.
В Unity компонент ActiveController отвечает за автоматическое управление состоянием GameObject.activeSelf объектов target и origin, чтобы отображать контент при отслеживании target или начале отслеживания движения, и скрывать его при потере target или до успешной инициализации отслеживания движения.
ActiveController предоставляет две различные стратегии управления активностью:
- 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 и связанный с ним контент деактивированы, а после успешной инициализации - остаются постоянно активными.
Выбор другой стратегии управления активностью
Откройте панель Inspector, в выпадающем меню Strategy выберите Input

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

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

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