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:

Punkt wejścia konfiguracji spojrzenia

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);
}