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:
- ActiveWhileTracked: quando rastreado, o GameObject é ativado (GameObject.activeSelf definido como
true); quando o rastreamento é perdido, o GameObject é desativado (GameObject.activeSelf definido comofalse). - ActiveAfterFirstTracked: antes do primeiro rastreamento, o GameObject é desativado (GameObject.activeSelf definido como
false); uma vez rastreado com sucesso, o GameObject permanece ativado continuamente (GameObject.activeSelf definido comotrue).
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

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

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.

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.