Partilhar via


Gaze — MRTK2

Gaze é 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 para a cabeça

Este tipo de olhar é baseado na direção para a qual a cabeça/câmara está a olhar. O olhar atento está ativo em sistemas que não suportam olhar para os olhos ou em casos em que o hardware possa suportar o olhar atento, mas o conjunto certo de permissões e configuração não foi executado.

Normalmente, o olhar para a cabeça está associado às interações de estilo do HoloLens 1 que envolvem olhar para o objeto ao colocá-lo no centro da Moldura Holográfica e, em seguida, ao fazer o gesto de toque de ar.

Olhar para os olhos

Este tipo de olhar é baseado no aspeto dos olhos do utilizador. O olhar atento só está presente em sistemas que suportam o controlo ocular. Veja a documentação de controlo ocular para obter mais detalhes sobre como utilizar o olhar atento.

GazeProvider

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

Mirar o Ponto de Entrada de Configuração

Tal como outras origens de entrada, o fornecedor de olhares fixos interage com objetos no cenário através da utilização de um ponteiro (consulte este documento para obter informações sobre ponteiros). No caso do fornecedor de gazes, o respetivo ponteiro é implementado através InternalGazePointer do e não é configurado através de um perfil.

É possível substituir o gazeProvider de stock por uma implementação alternativa ao alterar o Tipo de Fornecedor de Gaze para referenciar uma classe diferente que implementa IMixedRealityGazeProvider e IMixedRealityEyeGazeProvider. Geralmente, recomenda-se a utilização do gazeProvider de stock (e problemas de arquivamento no ao encontrar erros) uma vez que voltar a implementar o GazeProvider não é trivial.

Poses de olhar alternativo fornecidas pela plataforma

Por predefinição, o GazeProvider do MRTK utiliza o centro da moldura da câmara como a origem do olhar. Algumas plataformas, como Windows Mixed Reality no HoloLens 2, fornecem uma pose de olhar em alternativa definida. Isto é gerido através da Use Head Gaze Override definição nas definições de olhar atento. Quando ativada, será utilizada a substituição de olhar alternativo. Quando desativada, será utilizada a origem do centro de molduras predefinida. Especificamente, por HoloLens 2, o ângulo de olhar será elevado vários graus para explicar o conforto do utilizador em usar a cabeça para filtrar.

Utilização

Como obter o alvo de olhar atual

Este exemplo mostra como obter o objeto de jogo atual que é visado 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 a origem do olhar atual

Este exemplo mostra como obter o Vector3 que representa a direção do olhar do utilizador e a origem (o ponto a partir do qual a direção está a ir).

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

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