Zugreifen auf Eyetrackingdaten in Ihrem Unity-Skript

In diesem Artikel wird davon ausgegangen, dass sie über Kenntnisse zum Einrichten der Eyetracking in einer MRTK-Szene verfügt (siehe Grundlegendes MRTK-Setup für die Verwendung von Eyetracking). Der Zugriff auf Eyetrackingdaten in einem MonoBehaviour-Skript ist einfach! Verwenden Sie einfach CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityEyeGazeProvider

Die Eyetrackingkonfiguration im MRTK wird über die IMixedRealityEyeGazeProvider -Schnittstelle konfiguriert. Die Verwendung von CoreServices.InputSystem.EyeGazeProvider stellt die Standardmäßige Implementierung des Anvischen-Anbieters bereit, die zur Laufzeit im Toolkit registriert ist. Die nützlichen Eigenschaften von EyeGazeProvider sind unten beschrieben.

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

  • IsEyeCalibrationValid: Gibt an, ob die Eyetracking-Kalibrierung des Benutzers gültig ist oder nicht. Sie gibt "NULL" zurück, wenn der Wert noch keine Daten vom Eyetrackingsystem empfangen hat. Er ist möglicherweise ungültig, da der Benutzer die Eyetracking-Kalibrierung übersprungen hat.

  • IsEyeTrackingEnabledAndValid: Gibt an, ob die aktuellen Blickverfolgungsdaten derzeit zum Anvisieren verwendet werden.

  • IsEyeTrackingDataValid: True, wenn Eyetrackingdaten verfügbar sind. Es ist möglicherweise aufgrund eines überschrittenen Timeouts (sollte für den Benutzer robust sein, wenn er blinkt) oder aufgrund fehlender Nachverfolgungshardware oder -berechtigungen nicht verfügbar. Sehen Sie sich unser Beispiel für die Benachrichtigung über fehlende Augenkalibrierung an, in dem erläutert wird, wie Sie erkennen können, ob ein Benutzer mit dem Auge kalibriert ist, und um eine entsprechende Benachrichtigung anzuzeigen.

  • GazeOrigin: Ursprung des Anvischer Strahls. Beachten Sie, dass dadurch der Ursprung des Anvierens mit dem Kopf zurückgegeben wird, wenn "IsEyeGazeValid" false ist.

  • GazeDirection: Richtung des Anvischen-Strahls. Dadurch wird die Richtung des Anvierens mit dem Kopf zurückgegeben, wenn "IsEyeGazeValid" false ist.

  • HitInfo, HitPosition, HitNormal usw.: Informationen zum derzeit anvisierten Ziel. Auch wenn IsEyeGazeValid false ist, basiert dies auf dem Anverweisen des Benutzers auf den Kopf.

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

Hier sehen Sie ein Beispiel aus followEyeGaze.cs:

  • Abrufen des Punkts eines Hologramms, das der Benutzer ansieht:
// 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 Ort, an dem 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;

Siehe auch