Table of Contents

Estratégia de controle active para target e origin

Com o conteúdo abaixo, você entenderá as estratégias padrão de exibição e ocultação de objetos sob target e origin, e como ajustá-las conforme necessário.

Começando antes

  • Leia Target para entender os conceitos básicos, estados e ciclo de vida do target.
  • Leia XR Origin para entender os conceitos básicos, composição e ciclo de vida da XR Origin.

Controle active e tipos de estratégia de controle

Durante a execução da session, target e origin passam por mudanças de estado como rastreamento e perda. Através da estratégia de controle active, é possível gerenciar automaticamente o comportamento de exibição e ocultação de objetos sob target e origin.

No Unity, o componente ActiveController é responsável por gerenciar automaticamente o estado GameObject.activeSelf de objetos de target e orign, para exibir o conteúdo após o target ser rastreado ou o rastreamento de movimento começar, e ocultar o conteúdo antes que o target seja perdido ou o rastreamento de movimento seja inicializado com sucesso.

ActiveController fornece duas estratégias diferentes de controle active:

Por padrão, TargetController usa a estratégia ActiveWhileTracked, o que significa que quando o target é rastreado, o target e seu conteúdo são ativados, e quando o rastreamento é perdido, o target e seu conteúdo são desativados.

Por padrão, XROriginChildController usa a estratégia ActiveAfterFirstTracked, o que significa que antes do rastreamento de movimento ser inicializado com sucesso, a origin e seu conteúdo são desativados, e uma vez que o rastreamento de movimento é inicializado com sucesso, a origin e seu conteúdo permanecem ativados continuamente.

Escolhendo diferentes estratégias de controle active

Abra o painel Inspector, no menu suspenso Strategy selecione Input

alt text

Em seguida, no lado direito, selecione a estratégia de controle active desejada para substituir a estratégia padrão.

alt text

Em scripts, você pode substituir a estratégia de controle active padrão através da propriedade OverrideStrategy.

Por exemplo, o código abaixo mostra como definir a estratégia de controle active do target como ActiveAfterFirstTracked:

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

As alterações na estratégia active entram em vigor imediatamente e atualizam o GameObject.activeSelf de acordo com o estado atual de rastreamento.

Desativando o controle active

Se precisar desabilitar completamente o controle active, por exemplo, para controlar manualmente conforme necessário, você pode desativar o componente ActiveController.

alt text

Em scripts, você pode desligar o controle active definindo a propriedade ActiveController.enabled.

target.ActiveController.enabled = false;

As alterações na propriedade enabled entram em vigor imediatamente e não atualizarão mais o GameObject.activeSelf com base no estado de rastreamento. Se você reativar o componente ActiveController, o GameObject.activeSelf será atualizado de acordo com o estado atual de rastreamento.