Olhar

O olhar é uma forma de entrada que interage com o mundo com base no local onde o utilizador está a olhar. O olhar existe em dois sabores diferentes

Olhar de cabeça

Este tipo de olhar baseia-se na direção que a cabeça/câmara está a ver. O head gaze está ativo em sistemas que não suportam o olhar, ou em casos em que o hardware pode suportar o olhar, mas o conjunto certo de permissões e configuração não foi realizado.

O olhar da cabeça é geralmente associado a HoloLens interações de estilo 1 envolvendo olhar para o objeto colocando-o no centro da Moldura Holográfica e, em seguida, executando o gesto de toque de ar.

Olhar de olho

Este tipo de olhar baseia-se no ponto em que os olhos do utilizador estão a olhar. O olhar só está presente em sistemas que suportam o rastreio dos olhos. Consulte a documentação de rastreio de olhos para obter mais detalhes sobre como usar o olhar.

GazeProvider

A funcionalidade gaze (cabeça e olho) é fornecida pelo GazeProvider. Este fornecedor pode ser configurado na secção Pointer do perfil do sistema de entrada:

Ponto de entrada de configuração de gaze

Tal como outras fontes de entrada, o fornecedor de gaze interage com objetos na cena através da utilização de um ponteiro (consulte este documento para obter informações sobre os ponteiros). No caso do prestador de gaze, o seu ponteiro é implementado através InternalGazePointer de um perfil.

É possível substituir o stock GazeProvider por uma implementação alternativa, alterando o Gaze Provider Type para fazer referência a uma classe diferente que implementa o IMixedRealityGazeProvider e o IMixedRealityEyeGazeProvider. É geralmente recomendado usar o stock GazeProvider (e arquivar problemas em quando encontrar insetos) como re-implementação do GazeProvider não é trivial.

Poses alternativas de olhar fornecidas pela plataforma

Por padrão, o MRTK GazeProvider utiliza o centro da moldura da câmara como origem do olhar. Algumas plataformas, como Windows Mixed Reality no HoloLens 2, proporcionam uma pose de olhar alternativamente definida. Isto é gerido através da Use Head Gaze Override definição nas definições de olhar. Quando ativado, será utilizado o sobreposição de olhar alternativo. Quando desativado, a origem do centro de quadros padrão será utilizada. Especificamente, para HoloLens 2, o ângulo do olhar será aumentado vários graus para explicar o conforto do utilizador na utilização da cabeça para o alvo.

Utilização

Como obter o alvo de olhar atual

Esta amostra mostra como obter o objeto de jogo atual que é alvo pelo olhar do utilizador.

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

Como obter a direção e origem do olhar atual

Esta amostra mostra como obter o Vetor3 representando a direção do olhar do utilizador e a origem (o ponto a partir do qual a direção vai).

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

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