Estratégia de controle active para target e origin
Através do seguinte conteúdo, você aprenderá sobre a estratégia padrão de exibição e ocultação de objetos sob target e origin, e como ajustá-la conforme necessário.
Antes de começar
- 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 do XR Origin.
Controle active e tipos de estratégias de controle
Durante a execução da sessão, o target e a origin passarão 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 origin, 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.
O ActiveController oferece 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, 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, o XROriginChildController usa a estratégia ActiveAfterFirstTracked, o que significa que antes da inicialização bem-sucedida do rastreamento de movimento, 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, a estratégia de controle active padrão pode ser substituída 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 for necessário desabilitar completamente o controle active, por exemplo, para controlar manualmente conforme necessário, você pode desligar o controle active desativando o componente ActiveController.

Em scripts, o controle active pode ser desligado definindo a propriedade ActiveController.enabled.
target.ActiveController.enabled = false;
A alteração da propriedade ActiveController.enabled entra em vigor imediatamente e não atualizará mais o GameObject.activeSelf com base no estado de rastreamento. Se o componente ActiveController for habilitado novamente, o GameObject.activeSelf será atualizado de acordo com o estado atual de rastreamento.