Zugreifen auf Augenverfolgungsdaten in Ihrem Unity-Skript – MRTK2

In diesem Artikel wird davon ausgegangen, dass man Verständnis für die Einrichtung von Augenverfolgung in einer MRTK-Szene hat (siehe Grundlegendes MRTK-Setup zum Verwenden von Augenverfolgung). Der Zugriff auf Augenverfolgungsdaten in einem MonoBehaviour-Skript ist einfach! Verwenden Sie einfach CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityEyeGazeProvider

Die Augenverfolgungskonfiguration in MRTK wird über die IMixedRealityEyeGazeProvider Schnittstelle konfiguriert. Mithilfe von CoreServices.InputSystem.EyeGazeProvider wird die Standard-Blickanbieterimplementierung bereitgestellt, die im Toolkit zur Laufzeit registriert ist. Nützliche Eigenschaften der unten EyeGazeProvider beschriebenen Eigenschaften.

  • IsEyeTrackingEnabled: True, wenn der Benutzer die Augenverfolgung für den Blick ausgewählt hat.

  • IsEyeCalibrationValid: Gibt an, ob die Augenverfolgungskalibrierung des Benutzers gültig ist oder nicht. Es gibt "null" zurück, wenn der Wert noch keine Daten aus dem Augenverfolgungssystem empfangen hat. Es kann ungültig sein, da der Benutzer die Augenverfolgungskalibrierung übersprungen hat.

  • IsEyeTrackingEnabledAndValid: Gibt an, ob die aktuellen Augenverfolgungsdaten derzeit für den Blick verwendet werden.

  • IsEyeTrackingDataValid: True, wenn Augenverfolgungsdaten verfügbar sind. Es kann aufgrund überschreiteter Timeouts nicht verfügbar sein (sollte robust sein, wenn der Benutzer blinkt) oder mangels Nachverfolgungshardware oder Berechtigungen. Sehen Sie sich unser Beispiel für fehlende Augenkalibrierung an, in dem erläutert wird, wie sie erkennen, ob ein Benutzer augenkalibrierung ist und eine entsprechende Benachrichtigung anzeigt.

  • GazeOrigin: Ursprung des Blickstrahls. Bitte beachten Sie, dass dies den Kopfblick-Ursprung zurückgibt, wenn "IsEyeGazeValid" falsch ist.

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

  • HitInfo, HitPosition, HitNormal usw.: Informationen über die aktuell an das Ziel ausgerichteten Informationen. Wenn IsEyeGazeValid falsch, basiert dies erneut auf dem Kopfblick des Benutzers.

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

Hier ist ein Beispiel aus der FollowEyeGaze.cs:

  • Rufen Sie den Punkt eines Hologramms ab, das der Benutzer sieht:
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • Zeigt ein visuelles Objekt an einem festen Abstand von dem, von dem der Benutzer derzeit 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;

Siehe auch