Table of Contents

Stratégie de contrôle active pour target et origin

Grâce au contenu suivant, vous comprendrez la stratégie par défaut d'affichage et de masquage des objets sous target et origin, et comment l'ajuster selon vos 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.

Contrôle active et types de stratégies de contrôle

Pendant l'exécution de la session, target et origin subissent des changements d'état tels que le suivi et la perte. Grâce à la stratégie de contrôle active, vous pouvez gérer automatiquement le comportement d'affichage et de masquage des objets sous target et origin.

Dans Unity, le composant ActiveController est responsable de la gestion automatique de l'état GameObject.activeSelf des objets de target et origin, afin d'afficher le contenu lorsque target est suivi ou que le suivi de mouvement commence à suivre, et de masquer le contenu lorsque target est perdu ou avant que le suivi de mouvement ne soit initialisé avec succès.

ActiveController fournit deux stratégies de contrôle active 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 le suivi est perdu, target et son contenu sont désactivés.

Par défaut, XROriginChildController utilise la stratégie ActiveAfterFirstTracked, ce qui signifie qu'avant que le suivi de mouvement ne soit initialisé avec succès, origin et son contenu sont désactivés, et une fois le suivi de mouvement initialisé avec succès, origin et son contenu restent activés.

Choisir une stratégie de contrôle active différente

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

alt text

Puis à droite, sélectionnez la stratégie de contrôle active souhaitée pour remplacer la stratégie par défaut.

alt text

Dans les scripts, vous pouvez remplacer la stratégie de contrôle active par défaut via la propriété OverrideStrategy.

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

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

Les modifications de la stratégie active prennent effet immédiatement et mettent à jour GameObject.activeSelf en fonction de l'état de suivi actuel.

Désactiver le contrôle active

Si vous devez désactiver complètement le contrôle active, par exemple pour un contrôle manuel selon les besoins, vous pouvez désactiver le composant ActiveController.

alt text

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

target.ActiveController.enabled = false;

La modification de la propriété ActiveController.enabled prend effet immédiatement et ne mettra plus à jour GameObject.activeSelf en fonction de l'état de suivi. Si vous réactivez le composant ActiveController, GameObject.activeSelf sera mis à jour en fonction de l'état de suivi actuel.