Guia de portabilidade de entrada para UnityInput porting guide for Unity

Você pode portar sua lógica de entrada para a realidade mista do Windows usando uma das duas abordagens.You can port your input logic to Windows Mixed Reality using one of two approaches. A primeira é usar as APIs de entrada geral do Unity. getbutton/getaxis que se estendem por várias plataformas.The first is to use Unity's general Input.GetButton/GetAxis APIs that span across multiple platforms. O segundo é o XR específico do Windows. WSA. APIs de entrada, que oferecem dados mais ricos especificamente para controladores de movimento e mãos de HoloLens.The second is the Windows-specific XR.WSA.Input APIs, which offer richer data specifically for motion controllers and HoloLens hands.

Informações gerais de entrada. getbutton/getaxisGeneral Input.GetButton/GetAxis APIs

No momento, o Unity usa suas APIs Input. getbutton/Input. getaxis gerais para expor a entrada para o SDK do Oculus e o SDK do OpenVR.Unity currently uses its general Input.GetButton/Input.GetAxis APIs to expose input for the Oculus SDK and the OpenVR SDK. Se seus aplicativos já estiverem usando essas APIs para entrada, as APIs Input. getbutton/Input. getaxis serão os caminhos mais fáceis para dar suporte a controladores de movimento no Windows Mixed Reality.If your apps are already using these APIs for input, the Input.GetButton/Input.GetAxis APIs are the easiest paths for supporting motion controllers in Windows Mixed Reality. Você só precisará remapear botões e eixos no Gerenciador de entrada.You'll only need to remap buttons and axes in the Input Manager.

Para obter mais informações, consulte a tabela de mapeamento de botões/eixo do Unity e a visão geral das APIs comuns do Unity.For more information, see the Unity button/axis mapping table and the overview of the common Unity APIs.

XR específico do Windows. WSA. APIs de entradaWindows-specific XR.WSA.Input APIs

Se seu aplicativo já criar uma lógica de entrada personalizada para cada plataforma, você poderá usar as APIs de entrada espaciais específicas do Windows no namespace UnityEngine. XR. WSA. Input .If your app already builds custom input logic for each platform, you can use the Windows-specific spatial input APIs in the UnityEngine.XR.WSA.Input namespace. A partir daí, você acessa informações adicionais, como precisão da posição ou tipo de origem, permitindo que você informe as mãos e os controladores no HoloLens.From there, you access additional information, such as position accuracy or the source kind, letting you tell hands and controllers apart on HoloLens.

Para obter mais informações, consulte a visão geral das APIs UnityEngine. XR. WSA. Input.For more information, see the overview of the UnityEngine.XR.WSA.Input APIs.

Segurar pose vs. ponto de apontarGrip pose vs. pointing pose

O Windows Mixed Reality dá suporte a controladores de movimento em diferentes fatores forma.Windows Mixed Reality supports motion controllers in different form factors. O design de cada controlador difere em sua relação entre a posição da mão do usuário e a direção natural "encaminhar" que os aplicativos devem usar para apontar ao renderizar o controlador.Each controller's design differs in its relationship between the user's hand position and the natural "forward" direction that apps should use for pointing when rendering the controller.

Para representar melhor esses controladores, há dois tipos de poses que você pode investigar para cada fonte de interação:To better represent these controllers, there are two kinds of poses you can investigate for each interaction source:

  • A alça de fixação, que representa o local da palma de uma mão detectada por um HoloLens ou o Palm que está segurando um controlador de movimento.The grip pose, which represents the location of either the palm of a hand detected by a HoloLens, or the palm holding a motion controller.
    • Em headsets de imersão, essa pose é melhor usada para renderizar a mão do usuário ou um objeto mantido na mão do usuário, como uma gumes ou uma arma.On immersive headsets, this pose is best used to render the user's hand or an object held in the user's hand, such as a sword or gun.
    • A posição de alça: o Palm centróide ao manter o controlador naturalmente, ajustado para a esquerda ou para a direita para centralizar a posição dentro da alça.The grip position: The palm centroid when holding the controller naturally, adjusted left or right to center the position within the grip.
    • O eixo direito da orientação de alça: quando você abre completamente a mão para formar uma pose plana de 5 dedos, o raio normal para o Palm (para frente do Palm esquerdo, para trás do Palm direito)The grip orientation's Right axis: When you completely open your hand to form a flat 5-finger pose, the ray that is normal to your palm (forward from left palm, backward from right palm)
    • O eixo de avanço da orientação de alça: quando você fecha sua mão parcialmente, como se você mantiver o controlador, o raio que aponta para "encaminhar" por meio do tubo formado por seus dedos não-thumbs.The grip orientation's Forward axis: When you close your hand partially, as if holding the controller, the ray that points "forward" through the tube formed by your non-thumb fingers.
    • O eixo superior da orientação de alça: o eixo superior implícito pelas definições direita e avançar.The grip orientation's Up axis: The Up axis implied by the Right and Forward definitions.
    • Você pode acessar a alça de pose por meio da API de entrada entre fornecedores do Unity (XR. InputTracking. GetLocalPosition/Rotation) ou por meio da API específica do Windows (SourceState. SourcePose. TryGetPosition/Rotation, solicitando a pose de alça).You can access the grip pose through either Unity's cross-vendor input API (XR.InputTracking.GetLocalPosition/Rotation) or through the Windows-specific API (sourceState.sourcePose.TryGetPosition/Rotation, requesting the Grip pose).
  • A pose do ponteiro, representando a ponta do controlador apontando para frente.The pointer pose, representing the tip of the controller pointing forward.
    • Essa pose é mais bem usada para Raycast ao apontar para a interface do usuário quando você está renderizando o próprio modelo do controlador.This pose is best used to raycast when pointing at UI when you're rendering the controller model itself.
    • Atualmente, a pose do ponteiro está disponível somente por meio da API específica do Windows (SourceState. sourcePose. TryGetPosition/Rotation, solicitando a pose do ponteiro).Currently, the pointer pose is available only through the Windows-specific API (sourceState.sourcePose.TryGetPosition/Rotation, requesting the Pointer pose).

Essas coordenadas de pose são todas expressas nas coordenadas do mundo do Unity.These pose coordinates are all expressed in Unity world coordinates.

Confira tambémSee also