Uzyskiwanie dostępu do danych śledzenia oczu w skrypcie aparatu Unity — MRTK2

W tym artykule przyjęto założenie, że rozumie się, jak skonfigurować śledzenie oczu w scenie zestawu narzędzi MRTK (zobacz Podstawowa konfiguracja zestawu narzędzi MRTK do korzystania ze śledzenia oczu). Uzyskiwanie dostępu do danych śledzenia oczu w skryscie MonoBehaviour jest łatwe! Wystarczy użyć elementu CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityEyeGazeProvider

Konfiguracja śledzenia oczu w zestawie narzędzi MRTK jest konfigurowana za pośrednictwem interfejsu IMixedRealityEyeGazeProvider . Użycie elementu CoreServices.InputSystem.EyeGazeProvider zapewnia domyślną implementację dostawcy wzroku zarejestrowaną w zestawie narzędzi w czasie wykonywania. Przydatne właściwości elementu EyeGazeProvider przedstawiono poniżej.

  • IsEyeTrackingEnabled: prawda, jeśli użytkownik wybrał opcję śledzenia oczu do śledzenia wzroku.

  • IsEyeCalibrationValid: wskazuje, czy kalibracja śledzenia oczu użytkownika jest prawidłowa, czy nie. Zwraca wartość "null", jeśli wartość nie otrzymała jeszcze danych z systemu śledzenia oczu. Może to być nieprawidłowe, ponieważ użytkownik pominął kalibrację śledzenia oczu.

  • IsEyeTrackingEnabledAndValid: wskazuje, czy bieżące dane śledzenia oczu są obecnie używane do śledzenia wzroku.

  • IsEyeTrackingDataValid: prawda, jeśli dane śledzenia oczu są dostępne. Może to być niedostępne z powodu przekroczenia limitu czasu (powinno być niezawodne dla użytkownika migania, choć) lub braku śledzenia sprzętu lub uprawnień. Zapoznaj się z naszą próbką powiadomienia o braku kalibracji oczu , która wyjaśnia, jak wykryć, czy użytkownik skalibruje oko i wyświetli odpowiednie powiadomienie.

  • GazeOrigin: Pochodzenie promienia wzroku. Należy pamiętać, że zwróci to źródło głowy , jeśli wartość "IsEyeGazeValid" jest fałszywa.

  • GazeDirection: Kierunek promienia wzroku. Spowoduje to zwrócenie kierunku spojrzenia głowy , jeśli "IsEyeGazeValid" ma wartość false.

  • HitInfo, HitPosition, HitNormal itp.: Informacje o aktualnie zajrzałym miejscu docelowym. Ponownie, jeśli IsEyeGazeValid ma wartość false, będzie to oparte na spojrzeniu głowy użytkownika.

Przykłady użycia elementu CoreServices.InputSystem.EyeGazeProvider

Oto przykład z pliku FollowEyeGaze.cs:

  • Pobierz punkt hologramu, na który patrzy użytkownik:
// Show the object at the hit position of the user's eye gaze ray with the target.
gameObject.transform.position = CoreServices.InputSystem.EyeGazeProvider.HitPosition;
  • Pokazywanie elementu zawartości wizualizacji w stałej odległości od miejsca, w którym użytkownik aktualnie szuka:
// 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;

Zobacz też