Partilhar via


Guia de migração de entrada para o Unity

Pode migrar a lógica de entrada para Windows Mixed Reality através de uma de duas abordagens:

APIs Input.GetButton e Input.GetAxis gerais

Atualmente, o Unity utiliza as suas APIs e Input.GetAxis gerais Input.GetButton para expor entradas para o SDK Oculus e o SDK OpenVR. Se as suas aplicações já utilizarem estas APIs para introdução, estas APIs são o caminho mais fácil para suportar controladores de movimento no Windows Mixed Reality. Só precisa de remaptar botões e eixos no Gestor de Entradas.

Para obter mais informações, veja a tabela de mapeamento do eixo/botão do Unity e a descrição geral das APIs comuns do Unity.

Importante

Se utilizar controladores HP Reverb G2, consulte HP Reverb G2 Controllers in Unity (Controladores HP Reverb G2 no Unity ) para obter mais instruções de mapeamento de entrada.

APIs de entrada XR

As versões do Unity eliminaram gradualmente o XR. APIs WSA a favor do SDK XR. Para novos projetos, é melhor utilizar as APIs de entrada XR desde o início. Para obter mais informações, veja Unity XR Input (Entrada XR do Unity).

Se a sua aplicação já criar lógica de entrada personalizada para cada plataforma, pode utilizar as APIs de entrada espacial específicas do Windows no espaço de nomes UnityEngine.InputSystem.XR . Estas APIs permitem-lhe aceder a mais informações, como a precisão da posição ou o tipo de origem, para distinguir as mãos e os controladores no HoloLens.

Nota

Se utilizar controladores HP Reverb G2, todas as APIs de entrada continuarão a funcionar, exceto para InteractionSource.supportsTouchpad, o que devolve falso sem dados do touchpad.

Pose de aderência e pose de ponteiro

Windows Mixed Reality suporta controladores de movimento em fatores de forma diferentes. A estrutura de cada controlador difere na sua relação entre a posição da mão do utilizador e a direção de reencaminhamento natural que as aplicações utilizam para apontar ao compor o controlador.

Para representar melhor estes controladores, pode investigar dois tipos de poses para cada origem de interação, pose de aderência e pose de ponteiro. Expressa todas as coordenadas de pose nas coordenadas do mundo do Unity.

Pose de aderência

A posição de aderência representa a localização da palma de uma mão detetada por um HoloLens ou da palma da mão que segura um controlador de movimento. Nos auscultadores envolventes, utilize esta pose para compor a mão do utilizador ou um objeto na mão do utilizador, como uma espada ou arma.

  • A posição de aperto é o centroide da palma da mão quando segura o controlador naturalmente, ajustado à esquerda ou à direita para centrar a posição dentro da aderência.
  • O eixo direito da orientação da aderência é o raio normal para a palma da mão, para a frente a partir da palma da mão esquerda, para trás a partir da palma da mão direita, quando abre completamente a mão para formar uma pose plana de cinco dedos.
  • O eixo avançado da orientação da aderência é o raio que aponta para a frente através do tubo formado pelos seus dedos que não sejam polegares quando fecha parcialmente a mão, como se segurasse o controlador.
  • O eixo superior da orientação da aderência é o eixo superior implícito pelas definições certas e para a frente.

Aceda à postura de aderência através do XR do Unity. ApIs InputTracking.GetNodeStates , como XRNodeState.TryGetPosition ou XRNodeState.TryGetRotation.

Pose de ponteiro

A posição do ponteiro representa a ponta do controlador que aponta para a frente. Esta pose é melhor utilizada para fazer o ray cast apontar para a IU quando estiver a compor o próprio modelo de controlador.

A posição do ponteiro só está disponível no Unity através da API específica do MR do Windows, sourceState.sourcePose.TryGetPosition/Rotation, transmitindo InteractionSourceNode.Pointer como argumento.

Ver também