Accès aux données de suivi oculaire dans votre script Unity — MRTK2

Cet article part du principe qu’il faut bien configurer le suivi oculaire dans une scène MRTK (voir Configuration mrTK de base pour utiliser le suivi oculaire). L’accès aux données de suivi oculaire dans un script MonoBehaviour est facile ! Utilisez simplement CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityEyeGazeProvider

La configuration du suivi oculaire dans MRTK est configurée via l’interface IMixedRealityEyeGazeProvider . L’utilisation de CoreServices.InputSystem.EyeGazeProvider fournit l’implémentation du fournisseur de gaze par défaut inscrite dans le kit de ressources au moment de l’exécution. Les propriétés utiles du EyeGazeProvider est décrite ci-dessous.

  • IsEyeTrackingEnabled : True si l’utilisateur a choisi d’utiliser le suivi oculaire pour le regard.

  • IsEyeCalibrationValid : indique si l’étalonnage du suivi oculaire de l’utilisateur est valide ou non. Elle retourne « null », si la valeur n’a pas encore reçu de données du système de suivi oculaire. Elle peut être non valide, car l’utilisateur a ignoré l’étalonnage du suivi oculaire.

  • IsEyeTrackingEnabledAndValid : indique si les données de suivi oculaire actuelles sont actuellement utilisées pour le regard.

  • IsEyeTrackingDataValid : True si les données de suivi oculaire sont disponibles. Il peut être indisponible en raison d’un délai d’expiration dépassé (doit être robuste pour l’utilisateur qui clignote cependant) ou d’un manque de matériel de suivi ou d’autorisations. Consultez notre exemple de notification d’étalonnage des yeux manquants qui explique comment détecter si un utilisateur est étalonné pour les yeux et pour afficher une notification appropriée.

  • GazeOrigin : origine du rayon du regard. Notez que cela renvoie l’origine du regard de la tête si « IsEyeGazeValid » est faux.

  • GazeDirection : direction du rayon du regard. Cela retourne la direction du regard de la tête si 'IsEyeGazeValid' est false.

  • HitInfo, HitPosition, HitNormal, etc. : informations sur la cible actuellement regardée. Là encore, si IsEyeGazeValid est faux, cela sera basé sur le regard de la tête de l’utilisateur.

Exemples d’utilisation de CoreServices.InputSystem.EyeGazeProvider

Voici un exemple de FollowEyeGaze.cs :

  • Obtenez le point d’un hologramme que l’utilisateur examine :
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • Affichage d’une ressource visuelle à une distance fixe de l’emplacement où l’utilisateur recherche actuellement :
// If no target is hit, show the object at a default distance along the gaze ray.
gameObject.transform.position =
CoreServices.InputSystem.EyeGazeProvider.GazeOrigin +
CoreServices.InputSystem.EyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters;

Voir aussi