Table of Contents

Obtenir l'état de target

Pendant l'exécution de session, target passe par des changements d'état tels que tracking et lost. Le contenu suivant explique comment obtenir et utiliser les informations d'état de target, ainsi que comment utiliser les events found et lost pour contrôler l'affichage de content.

Avant de commencer

  • Comprendre les concepts de base, la composition et le workflow de session avec ARSession introduction.
  • Comprendre les concepts de base, l'état et le lifecycle de target avec Target.

Déterminer si target est suivi

Vous pouvez utiliser la propriété TargetController.IsTracked pour déterminer si target est suivi.

Utiliser les events found et lost de target

Vous pouvez utiliser les events TargetController.TargetFound et TargetController.TargetLost pour gérer les cas où target est suivi ou perdu.

Par exemple, le code suivant montre le processus de lecture d'une vidéo lorsque target est suivi, et de pause de video playback lorsque target est perdu :

target.TargetFound += () =>
{
    if (player && player.gameObject.activeInHierarchy)
    {
        player.Play();
    }
};
target.TargetLost += () =>
{
    if (player && player.gameObject.activeInHierarchy)
    {
        player.Pause();
    }
};
Attention

Si target n'est pas déchargé manuellement, TargetController.TargetLost peut être appelé lorsque session s'arrête. Si session n'est pas arrêtée manuellement, il peut être appelé pendant OnDestroy de session. Comme l'ordre d'exécution de OnDestroy dans Unity n'est pas garanti, les objets utilisés dans l'event doivent être vérifiés pour leur validité afin d'éviter d'accéder à des objets déjà détruits pendant OnDestroy.

Étapes suivantes

  • active control policy présente la default show and hide policy pour les objets sous target, ainsi que la manière de l'ajuster selon les besoins.