Взгляд

Взгляд — это форма входных данных, которая взаимодействует с миром в зависимости от того, где находится пользователь. Взгляд существует в двух разных разновидностях

Отслеживание направления головы

Этот тип взгляда основан на направлении, в котором просматривается головной или камера. Головной взгляд активен на системах, не поддерживающих глаз, или в случаях, когда оборудование может поддерживать глазный взгляд, но правильный набор разрешений и настройки не выполнялся.

головной взгляд, как правило, связан с взаимодействием в стиле HoloLens 1, включающим поиск объекта, поместив его в центре holographic-кадра, а затем выполняя жест касания воздуха.

Отслеживание глаз

Этот тип взгляда зависит от того, где ищутся глаза пользователя. Взгляд на глаза имеется только в системах, поддерживающих отслеживание глаз. Дополнительные сведения об использовании глаз см. в документации по отслеживанию взглядов .

газепровидер

Функция взгляда («руководитель» и «глаз») предоставляется газепровидер. Этот поставщик можно настроить в разделе указателя входного системного профиля:

Взгляните на точку входа конфигурации

Как и другие источники входных данных, поставщик взгляда взаимодействует с объектами в сцене с помощью указателя (Дополнительные сведения об указателях см. в этом документе). В случае с поставщиком взгляд его указатель реализуется через InternalGazePointer и не настраивается с помощью профиля.

Можно заменить акцию Газепровидер другой реализацией, изменив тип поставщика взгляда на другой класс, реализующий имикседреалитигазепровидер и имикседреалитеегазепровидер. Обычно рекомендуется использовать Газепровидер на бирже (и при обнаружении ошибок), так как повторное внедрение Газепровидер не является тривиальной задачей.

Альтернативные предоставляемые платформой взгляды

По умолчанию МРТК Газепровидер использует центр кадра камеры в качестве источника взгляда. некоторые платформы, например Windows Mixed Reality на HoloLens 2, предоставляют в качестве альтернативы определенный объект «взгляд». Это осуществляется с помощью Use Head Gaze Override параметра в параметрах взгляда. Если этот параметр включен, будет использоваться альтернативное переопределение взгляда. Если этот параметр отключен, будет использоваться источник по умолчанию для центра кадров. в частности, для HoloLens 2 угол взгляда будет выдаваться в несколько градусов, что позволит пользователю прилагаться к использованию их головного расположения.

Использование

Получение текущего целевого объекта взгляда

В этом примере показано, как получить текущий объект Game, который является целевым для пользователя.

void LogCurrentGazeTarget()
{
    if (CoreServices.InputSystem.GazeProvider.GazeTarget)
    {
        Debug.Log("User gaze is currently over game object: "
            + CoreServices.InputSystem.GazeProvider.GazeTarget)
    }
}

Как получить текущее направление и источник взгляда

В этом примере показано, как получить Vector3, представляющую направление пользователя и источник (точку, из которой переходит направление).

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

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