Obter o estado do target
Durante a execução da sessão, o target passa por mudanças de estado como rastreamento e perda. Através do conteúdo abaixo, você aprenderá como obter e usar as informações de estado do target, além de como usar os eventos found e lost para controlar a exibição de conteúdo.
Antes de começar
- Compreenda os conceitos básicos, componentes e fluxo de trabalho da sessão através de Introdução ao ARSession.
- Compreenda os conceitos básicos, estados e ciclo de vida do target através de Target.
Verificar se o target está sendo rastreado
Você pode usar a propriedade TargetController.IsTracked para verificar se o target está sendo rastreado.
Usar os eventos found e lost do target
Você pode usar os eventos TargetController.TargetFound e TargetController.TargetLost para lidar com situações em que o target é rastreado ou perdido.
Por exemplo, o código abaixo demonstra como reproduzir um vídeo quando o target é rastreado e pausar a reprodução quando o target é perdido:
target.TargetFound += () =>
{
if (player && player.gameObject.activeInHierarchy)
{
player.Play();
}
};
target.TargetLost += () =>
{
if (player && player.gameObject.activeInHierarchy)
{
player.Pause();
}
};
Cuidado
Se o target não for descarregado manualmente, o TargetController.TargetLost pode ser chamado quando a sessão for interrompida. Se a sessão não for interrompida manualmente, isso pode ocorrer durante o processo OnDestroy da sessão. Como a ordem de execução do OnDestroy no Unity não é garantida, objetos usados nos eventos precisam de verificação de validade para evitar acesso a objetos já destruídos durante o OnDestroy.
Próximos passos
- Estratégia de controle active apresenta a estratégia padrão de exibição e ocultação de objetos sob o target e como ajustá-la conforme necessário.