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;