Table of Contents

Stratégies d'active control pour target et origin

Le contenu suivant présente les stratégies par défaut d'affichage et de masquage des objets sous target et origin, ainsi que la manière de les ajuster selon les besoins.

Avant de commencer

  • Lisez Target pour comprendre les concepts de base, les états et le cycle de vie de target.
  • Lisez XR Origin pour comprendre les concepts de base, la composition et le cycle de vie de XR Origin.

Active control et types de stratégies de contrôle

Pendant l'exécution d'une session, target et origin subissent des changements d'état comme tracking et lost. Grâce aux stratégies d'active control, le comportement d'affichage et de masquage des objets sous target et origin peut être géré automatiquement.

Dans Unity, le composant ActiveController est chargé de gérer automatiquement l'état GameObject.activeSelf des objets target et orign, afin d'afficher le contenu lorsque target est suivi ou lorsque motion tracking commence le tracking, et de le masquer lorsque target est perdu ou avant l'initialisation réussie de motion tracking.

ActiveController fournit deux stratégies d'active control différentes:

Par défaut, TargetController utilise la stratégie ActiveWhileTracked, ce qui signifie que lorsque target est suivi, target et son contenu sont activés, et lorsque tracking est perdu, target et son contenu sont désactivés.

Par défaut, XROriginChildController utilise la stratégie ActiveAfterFirstTracked, ce qui signifie qu'avant l'initialisation réussie de motion tracking, origin et son contenu sont désactivés, et qu'une fois motion tracking initialisé avec succès, origin et son contenu restent activés.

Sélectionner une autre stratégie d'active control

Ouvrez le panneau Inspector et sélectionnez Input dans le menu déroulant Strategy.

alt text

Sélectionnez ensuite à droite la stratégie d'active control souhaitée pour remplacer la stratégie par défaut.

alt text

Dans les scripts, vous pouvez remplacer la stratégie d'active control par défaut via la propriété OverrideStrategy.

Par exemple, le code suivant montre comment définir la stratégie d'active control de target sur ActiveAfterFirstTracked:

target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;

Les modifications de la stratégie active prennent effet immédiatement, et GameObject.activeSelf est mis à jour selon l'état de tracking actuel.

Désactiver active control

Si vous devez désactiver complètement active control, par exemple pour le contrôler selon vos besoins, vous pouvez le désactiver en désactivant le composant ActiveController.

alt text

Dans les scripts, vous pouvez désactiver active control en définissant la propriété ActiveController.enabled.

target.ActiveController.enabled = false;

Les modifications de la propriété ActiveController.enabled prennent effet immédiatement, et GameObject.activeSelf n'est plus mis à jour selon l'état de tracking. Si le composant ActiveController est réactivé, GameObject.activeSelf sera mis à jour selon l'état de tracking actuel.