Zugreifen auf Eyetrackingdaten in Ihrem Unity-Skript – MRTK2

In diesem Artikel wird davon ausgegangen, dass sie über Kenntnisse zum Einrichten von Eyetracking in einer MRTK-Szene verfügen (siehe Grundlegende MRTK-Einrichtung zur Verwendung von Eyetracking). Der Zugriff auf Eyetracking-Daten in einem MonoBehaviour-Skript ist einfach! Verwenden Sie einfach CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityEyeGazeProvider

Die Eyetracking-Konfiguration im MRTK wird über die IMixedRealityEyeGazeProvider Schnittstelle konfiguriert. Die Verwendung von CoreServices.InputSystem.EyeGazeProvider stellt die standardmäßige Gaze-Anbieterimplementierung bereit, die zur Laufzeit im Toolkit registriert ist. Die nützlichen Eigenschaften der EyeGazeProvider werden unten beschrieben.

  • IsEyeTrackingEnabled: True, wenn der Benutzer die Verwendung von Eyetracking für das Anvisieren ausgewählt hat.

  • IsEyeCalibrationValid: Gibt an, ob die Eyetracking-Kalibrierung des Benutzers gültig ist oder nicht. Es wird "NULL" zurückgegeben, wenn der Wert noch keine Daten vom Eyetracking-System empfangen hat. Es kann ungültig sein, weil der Benutzer die Eyetracking-Kalibrierung übersprungen hat.

  • IsEyeTrackingEnabledAndValid: Gibt an, ob die aktuellen Eyetracking-Daten derzeit für das Anvisieren verwendet werden.

  • IsEyeTrackingDataValid: True, wenn Eyetracking-Daten verfügbar sind. Es ist möglicherweise aufgrund eines überschrittenen Timeouts nicht verfügbar (sollte jedoch robust sein, wenn der Benutzer blinkt) oder mangels Nachverfolgungshardware oder -berechtigungen. Sehen Sie sich unser Benachrichtigungsbeispiel für fehlende Augenkalibrierung an, in dem erläutert wird, wie Sie erkennen, ob ein Benutzer augenkalibriert ist, und eine entsprechende Benachrichtigung anzeigen.

  • GazeOrigin: Ursprung des Blickstrahls. Bitte beachten Sie, dass dadurch der Kopfsichtursprung zurückgegeben wird, wenn "IsEyeGazeValid" auf "false" festgelegt ist.

  • GazeDirection: Richtung des Blickstrahls. Dadurch wird die Blickrichtung des Kopfes zurückgegeben, wenn "IsEyeGazeValid" auf "false" festgelegt ist.

  • HitInfo, HitPosition, HitNormal, etc.: Informationen über das aktuell auf das Ziel gestoßene. Auch wenn IsEyeGazeValid false ist, basiert dies auf dem Kopfblick des Benutzers.

Beispiele für die Verwendung von CoreServices.InputSystem.EyeGazeProvider

Hier ist ein Beispiel aus followEyeGaze.cs:

  • Rufen Sie den Punkt eines Hologramms ab, das der Benutzer betrachtet:
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • Anzeigen eines visuellen Medienobjekts in einem festen Abstand von dem, was der Benutzer gerade sucht:
// 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;

Weitere Informationen