Uzyskiwanie dostępu do danych śledzenia wzroku w skrypcie aparatu Unity

W tym artykule przyjęto założenie, że jedna z osób ma wiedzę na temat konfigurowania śledzenia oczu w scenie zestawu danych MRTK (zobacz Podstawowa konfiguracja zestawu mrTK w celu korzystania ze śledzenia oczu). Uzyskiwanie dostępu do danych śledzenia oczu w skrypcie MonoBehaviour jest łatwe! Po prostu użyj metody CoreServices.InputSystem.EyeGazeProvider.

IMixedRealityGazeProvider

Konfiguracja śledzenia wzroku w mrtk jest konfigurowana za pośrednictwem IMixedRealityEyeGazeProvider interfejsu. Użycie narzędzia CoreServices.InputSystem.EyeGazeProvider zapewnia domyślną implementację dostawcy spojrzeń zarejestrowaną w zestawie narzędzi w czasie wykonywania. Przydatne właściwości obiektu EyeGazeProvider opisano poniżej.

  • IsTrackingEnabled: wartość true, jeśli użytkownik wybrał opcję korzystania ze śledzenia wzroku dla spojrzenia.

  • Is PrzeskalowanieCalibrationValid: wskazuje, czy śledzenie wzroku użytkownika jest prawidłowe, czy nie. Zwraca wartość "null", jeśli wartość nie otrzymała jeszcze danych z systemu śledzenia wzroku. Może to być nieprawidłowe, ponieważ użytkownik pominął śledzenie wzroku.

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

  • IsTrackingDataValid: wartość true, jeśli dostępne są dane śledzenia wzroku. Może być ona niedostępna z powodu przekroczenia limitu czasu (powinien być niezawodny dla użytkownika migający) lub braku śledzenia sprzętu lub uprawnień. Zapoznaj się z naszą próbką powiadomień o braku wzroku, która wyjaśnia, jak wykryć, czy użytkownik jest skalibrowany i jak wyświetlić odpowiednie powiadomienie.

  • GazeOrigin: Źródło promienia spojrzenia. Należy pamiętać, że spowoduje to zwrócenie źródła spojrzenia głowy, jeśli wartość "Is PogazeValid" ma wartość false.

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

  • HitInfo, HitPosition, HitNormal itp.: informacje o aktualnie wpatrzone w obiekt docelowy. Ponownie, jeśli ma wartość false, będzie to oparte na IsEyeGazeValid spojrzeniach głowy użytkownika.

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

Oto przykład z następującego przykładu:

  • Uzyskaj 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;
  • Wyświetlanie zasobu wizualnego 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ż