Dela via


Komma åt ögonspårningsdata i ditt Unity-skript – MRTK2

Den här artikeln förutsätter att man har förståelse för att konfigurera ögonspårning i en MRTK-scen (se Grundläggande MRTK-konfiguration för att använda ögonspårning). Det är enkelt att komma åt ögonspårningsdata i ett MonoBehaviour-skript! Använd bara CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityEyeGazeProvider

Konfiguration av ögonspårning i MRTK konfigureras via IMixedRealityEyeGazeProvider gränssnittet. Med CoreServices.InputSystem.EyeGazeProvider får du standardimplementeringen av blickprovidern som registrerats i verktygslådan vid körning. Användbara egenskaper för EyeGazeProvider beskrivs nedan.

  • IsEyeTrackingEnabled: Sant om användaren har valt att använda ögonspårning för blick.

  • IsEyeCalibrationValid: Anger om användarens ögonspårningskalibrering är giltig eller inte. Den returnerar "null", om värdet ännu inte har tagit emot data från ögonspårningssystemet. Det kan vara ogiltigt eftersom användaren hoppade över kalibreringen av ögonspårningen.

  • IsEyeTrackingEnabledAndValid: Anger om aktuella ögonspårningsdata för närvarande används för blick.

  • IsEyeTrackingDataValid: Sant om ögonspårningsdata är tillgängliga. Det kan vara otillgängligt på grund av överskriden tidsgräns (bör vara robust för användaren som blinkar dock) eller brist på spårning av maskinvara eller behörigheter. Kolla in vårt exempel på avisering om ögonkalibrering saknas som förklarar hur du identifierar om en användare är ögonkalibrerad och för att visa en lämplig avisering.

  • GazeOrigin: Beskärningen av blickstrålen. Observera att detta returnerar huvud blickens ursprung om "IsEyeGazeValid" är falskt.

  • GazeDirection: Riktning av blickstrålen. Detta returnerar huvud blickriktningen om "IsEyeGazeValid" är falskt.

  • HitInfo, HitPosition, HitNormal, etc.: Information om den aktuella blicken på målet. Återigen, om IsEyeGazeValid är falskt, kommer detta att baseras på användarens huvud blick.

Exempel för att använda CoreServices.InputSystem.EyeGazeProvider

Här är ett exempel från FollowEyeGaze.cs:

  • Hämta punkten för ett hologram som användaren tittar på:
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • Visar en visuell tillgång på ett fast avstånd från där användaren för närvarande letar:
// 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;

Se även