Spojrzenie — MRTK2
Spojrzenie to forma danych wejściowych, które wchodzą w interakcje ze światem w oparciu o to, gdzie szuka użytkownik. Spojrzenie istnieje w dwóch różnych smakach
Spojrzenie na głowę
Ten typ spojrzenia opiera się na kierunku, na który patrzy głowa/kamera. Spojrzenie na głowę jest aktywne w systemach, które nie obsługują wzroku lub w przypadkach, gdy sprzęt może obsługiwać wzrok, ale nie przeprowadzono odpowiedniego zestawu uprawnień i konfiguracji .
Spojrzenie na głowę jest zwykle związane z interakcjami w stylu HoloLens 1 z udziałem patrzenia na obiekt, umieszczając go w środku Holographic Frame, a następnie wykonując gest naciśnięcia powietrza.
Spojrzenie oczu
Ten typ spojrzenia opiera się na tym, gdzie wyglądają oczy użytkownika. Wzrok jest obecny tylko w systemach, które obsługują śledzenie oczu. Zapoznaj się z dokumentacją śledzenia oczu , aby uzyskać więcej informacji na temat sposobu korzystania z wzroku.
GazeProvider
Funkcja spojrzenia (zarówno głowy, jak i oka) jest dostarczana przez GazeProvider. Ten dostawca można skonfigurować w sekcji Wskaźnik profilu systemu wejściowego:
Podobnie jak inne źródła danych wejściowych, dostawca spojrzenia wchodzi w interakcje z obiektami w scenie przy użyciu wskaźnika (zobacz ten dokument, aby uzyskać informacje na temat wskaźników).
W przypadku dostawcy spojrzenia jego wskaźnik jest implementowany za pośrednictwem InternalGazePointer
i nie jest skonfigurowany za pośrednictwem profilu.
Można zastąpić stock GazeProvider alternatywną implementacją przez zmianę typu dostawcy usługi Gaze, aby odwołać się do innej klasy, która implementuje IMixedRealityGazeProvider i IMixedRealityEyeGazeProvider. Ogólnie zaleca się używanie stock GazeProvider (i zgłaszanie problemów podczas znajdowania usterek) podczas ponownego implementowania GazeProvider jest nietrygalne.
Alternatywne spojrzenie dostarczone przez platformę stanowi
Domyślnie element MRTK GazeProvider używa środka ramki kamery jako źródła spojrzenia. Niektóre platformy, takie jak Windows Mixed Reality na HoloLens 2, zapewniają alternatywnie zdefiniowaną postawę spojrzenia. Jest to zarządzane za pośrednictwem Use Head Gaze Override
ustawienia w ustawieniach spojrzenia. Po włączeniu zostanie użyte alternatywne przesłonięcia spojrzenia. Po wyłączeniu zostanie użyte domyślne źródło środka ramki. W szczególności, w przypadku HoloLens 2 kąt spojrzenia zostanie podniesiony kilka stopni, aby uwzględnić komfort użytkownika w używaniu głowy do kierowania.
Użycie
Jak uzyskać bieżący cel spojrzenia
W tym przykładzie pokazano, jak uzyskać bieżący obiekt gry, którego celem jest spojrzenie użytkownika.
void LogCurrentGazeTarget()
{
if (CoreServices.InputSystem.GazeProvider.GazeTarget)
{
Debug.Log("User gaze is currently over game object: "
+ CoreServices.InputSystem.GazeProvider.GazeTarget)
}
}
Jak uzyskać bieżący kierunek spojrzenia i początek
W tym przykładzie pokazano, jak uzyskać wektor3 reprezentujący kierunek spojrzenia użytkownika i początek (punkt, z którego zmierza kierunek).
void LogGazeDirectionOrigin()
{
Debug.Log("Gaze is looking in direction: "
+ CoreServices.InputSystem.GazeProvider.GazeDirection);
Debug.Log("Gaze origin is: "
+ CoreServices.InputSystem.GazeProvider.GazeOrigin);
}