Obter o status de target
Durante a execução de session, target passa por mudanças de estado como tracking e lost. No conteúdo a seguir, você aprenderá como obter e usar informações de status de target, e como usar events found e lost para controlar a exibição de content.
Antes de começar
- Entenda os conceitos básicos, a composição e o workflow de session em ARSession introduction.
- Entenda os conceitos básicos, status e lifecycle de target em Target.
Determinar se target está sendo rastreado
Você pode usar a propriedade TargetController.IsTracked para determinar se target está sendo rastreado.
Usar events found e lost de target
Você pode usar os events TargetController.TargetFound e TargetController.TargetLost para lidar com casos em que target é rastreado ou perdido.
Por exemplo, o código a seguir mostra o processo de reproduzir vídeo quando target é rastreado e pausar o video playback quando target é perdido:
target.TargetFound += () =>
{
if (player && player.gameObject.activeInHierarchy)
{
player.Play();
}
};
target.TargetLost += () =>
{
if (player && player.gameObject.activeInHierarchy)
{
player.Pause();
}
};
Cuidado
Se target não for descarregado manualmente, TargetController.TargetLost pode ser chamado quando session parar. Se session não for parada manualmente, ele pode ser chamado durante OnDestroy de session. Como a ordem de execução de OnDestroy no Unity não é garantida, os objetos usados no event precisam ser verificados quanto à validade para evitar acessar objetos que já foram destruídos durante OnDestroy.
Próximas etapas
- active control policy apresenta a default show and hide policy para objetos sob target e como ajustá-la conforme necessário.