Table of Contents

Стратегия 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 управления:

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

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

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

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

alt text

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

alt text

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

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

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

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

Отключение active управления

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

alt text

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

target.ActiveController.enabled = false;

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