Cabeça-olhar no UnityHead-gaze in Unity

Olhar é a principal maneira para os usuários direcionarem os hologramas que seu aplicativo cria em realidade misturada.Gaze is the primary way for users to target holograms your app creates in Mixed Reality.

Implementando o Head-olharImplementing head-gaze

Conceitualmente, você determina o Head-olhar projetando um Ray forward do headset do usuário para ver o que ele atinge.Conceptually, you determine head-gaze by projecting a ray forward from the user's headset to see what it hits. No Unity, a posição e a direção da cabeça do usuário são expostas por meio da câmera, especificamente UnityEngine. Camera. Main. Transform. Forward e UnityEngine. Camera. Main. Transform. Position.In Unity, the user's head position and direction are exposed through the Camera, specifically UnityEngine.Camera.main.transform.forward and UnityEngine.Camera.main.transform.position.

Chamar física. RayCast fornece a você um RaycastHit que contém informações sobre a colisão, incluindo o ponto de colisão 3D e o outro gameobject com o cabeçalho Head-olhar Ray.Calling Physics.RayCast gives you a RaycastHit containing information about the collision, including the 3D collision point and the other GameObject the head-gaze ray hit.

Exemplo: implementar Head-olharExample: Implement head-gaze

void Update()
{
       RaycastHit hitInfo;
       if (Physics.Raycast(
               Camera.main.transform.position,
               Camera.main.transform.forward,
               out hitInfo,
               20.0f,
               Physics.DefaultRaycastLayers))
       {
           // If the Raycast has succeeded and hit a hologram
           // hitInfo's point represents the position being gazed at
           // hitInfo's collider GameObject represents the hologram being gazed at
       }
}

Práticas recomendadasBest practices

Enquanto o exemplo acima dispara um único Raycast do loop de atualização para localizar o destino dos pontos de partida do usuário em, recomendamos usar um único objeto para gerenciar todos os processos olhar.While the example above fires a single raycast from the update loop to find the target the user's head points at, we recommended using a single object to manage all head-gaze processes. A combinação da lógica Head-olhar economizará a capacidade de processamento precioso do aplicativo e limitará seu raycasting a um por quadro.Combining your head-gaze logic will save your app precious processing power and limit your raycasting to one per frame.

Visualizando a cabeça-olharVisualizing head-gaze

Assim como com um ponteiro do mouse em um computador, você deve implementar um cursor que represente o olhar do usuário.Just like with a mouse pointer on a computer, you should implement a cursor that represents the user's head-gaze. Saber qual conteúdo um usuário está direcionando aumenta a confiança no que eles estão prestes a interagir.Knowing what content a user is targeting increases confidence in what they're about to interact with.

Head-olhar no kit de ferramentas da realidade misturadaHead-gaze in the Mixed Reality Toolkit

Você pode acessar o Head-olhar do Gerenciador de entrada no MRTK.You can access head-gaze from the Input Manager in MRTK.

Próximo ponto de verificação de desenvolvimentoNext Development Checkpoint

Se você estiver seguindo a jornada de desenvolvimento do Unity que apresentamos, você está no meio da exploração dos blocos de construção do MRTK Core.If you're following the Unity development journey we've laid out, you're in the midst of exploring the MRTK core building blocks. Deste ponto, você pode prosseguir para o próximo bloco de construção:From here, you can continue to the next building block:

Ou vá diretamente para as funcionalidades e APIs da plataforma de Realidade Misturada:Or jump to Mixed Reality platform capabilities and APIs:

Você sempre pode voltar para os pontos de verificação de desenvolvimento do Unity a qualquer momento.You can always go back to the Unity development checkpoints at any time.

Confira tambémSee also