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;