Spojrzenie

Spojrzenie jest formą danych wejściowych, które współdziałają ze światem w oparciu o to, gdzie znajduje się użytkownik. Spojrzenie istnieje w dwóch różnych odmianach

Spojrzenie głowy

Ten typ spojrzenia jest oparty na kierunku, w jakim patrzy kamera/kamera. Spojrzenie głowy jest aktywne w systemach, które nie obsługują spojrzenia wzrokowego, lub w przypadkach, gdy sprzęt może obsługiwać spojrzenie wzrokowe, ale nie wykonano odpowiedniego zestawu uprawnień i konfiguracji.

Spojrzenie głowy jest zwykle kojarzone HoloLens interakcjami stylu obejmującymi spojrzenie na obiekt przez umieszczenie go w środku ramki holograficznej, a następnie wykonanie gestu naciśnięcia w powietrzu.

Spojrzenie na oko

Ten typ spojrzenia zależy od tego, gdzie patrzy wzrok użytkownika. Spojrzenie na oko jest obecne tylko w systemach, które obsługują śledzenie wzroku. Aby uzyskać więcej informacji na temat korzystania z spojrzenia wzrokowego, zobacz dokumentację dotyczącą śledzenia oczu.

GazeProvider

Funkcja spojrzenia (zarówno głowy, jak i oka) jest zapewniana przez projekt GazeProvider. Tego dostawcę można skonfigurować w sekcji Wskaźnik profilu systemu wejściowego:

Punkt wejścia konfiguracji spojrzenia

Podobnie jak w przypadku innych źródeł danych wejściowych, dostawca spojrzenia wchodzi w interakcję z obiektami w scenie za pomocą 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 funkcji InternalGazePointer i nie jest konfigurowany za pośrednictwem profilu.

Istnieje możliwość zastąpienia akcji GazeProvider alternatywną implementacją przez zmianę typu dostawcy usługi Gaze w celu odwołania się do innej klasy, która implementuje klasy IMixedRealityGazeProvider i IMixedReality SzybkoGazeProvider. Zazwyczaj zaleca się używanie akcji GazeProvider (i zgłaszanie problemów podczas znajdowania usterek), ponieważ ponowne zaimplementowanie tej funkcji jest nie trywialne.

Alternatywne ułożenie spojrzenia udostępniane przez platformę

Domyślnie mrTK GazeProvider używa środka ramki aparatu jako źródła spojrzenia. Niektóre platformy, takie Windows Mixed Reality na HoloLens 2, zapewniają alternatywnie zdefiniowaną postawę spojrzenia. Jest to zarządzane za Use Head Gaze Override pośrednictwem ustawienia w ustawieniach spojrzenia. Po włączeniu zostanie użyte alternatywne przesłonięcie spojrzenia. Po wyłączeniu zostanie użyte domyślne źródło środka ramki. W szczególności w HoloLens 2 kąt spojrzenia zostanie podniesiony o kilka stopni, aby uwzględnić komfort użytkownika podczas używania głowy do określania wartości docelowej.

Użycie

Jak uzyskać bieżący element docelowy spojrzenia

W tym przykładzie pokazano, jak pobrać bieżący obiekt gry, który jest ukierunkowany przez 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 źródło

W tym przykładzie pokazano, jak uzyskać wektor Vector3 reprezentujący kierunek spojrzenia użytkownika i źródło (punkt, od którego kierunek jest przechodzący).

void LogGazeDirectionOrigin()
{
    Debug.Log("Gaze is looking in direction: "
        + CoreServices.InputSystem.GazeProvider.GazeDirection);

    Debug.Log("Gaze origin is: "
        + CoreServices.InputSystem.GazeProvider.GazeOrigin);
}