Table of Contents

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:

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

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, 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.

alt text

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.