Guía de portabilidad de entrada para UnityInput porting guide for Unity

Puede trasladar la lógica de entrada a Windows Mixed Reality mediante uno de estos dos enfoques.You can port your input logic to Windows Mixed Reality using one of two approaches. El primero es usar las API de entrada general de Unity. GetButton/GetAxis que abarcan varias plataformas.The first is to use Unity's general Input.GetButton/GetAxis APIs that span across multiple platforms. El segundo es el XR específico de Windows. WSA. API de entrada, que ofrecen datos más completos específicamente para los controladores de movimiento y las manos de HoloLens.The second is the Windows-specific XR.WSA.Input APIs, which offer richer data specifically for motion controllers and HoloLens hands.

API de entrada general. GetButton/GetAxisGeneral Input.GetButton/GetAxis APIs

Unity usa actualmente sus API de entrada general. GetButton/Input. GetAxis para exponer la entrada para el SDK de Oculus y el SDK de OpenVR.Unity currently uses its general Input.GetButton/Input.GetAxis APIs to expose input for the Oculus SDK and the OpenVR SDK. Si las aplicaciones ya usan estas API para la entrada, las API Input. GetButton/Input. GetAxis son las rutas de acceso más fáciles para admitir controladores de movimiento en 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. Solo necesitará volver a asignar botones y ejes en el administrador de entrada.You'll only need to remap buttons and axes in the Input Manager.

Para obtener más información, consulte la tabla de asignación de ejes y botones de Unity y la información general de las API comunes de Unity.For more information, see the Unity button/axis mapping table and the overview of the common Unity APIs.

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

Si la aplicación ya compila la lógica de entrada personalizada para cada plataforma, puede usar las API de entrada espacial específicas de Windows en el espacio de nombres 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. Desde allí, tiene acceso a información adicional, como la precisión de la posición o el tipo de origen, lo que le permite indicar a las manos y controladores de 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 obtener más información, vea la información General de las API de UnityEngine. XR. WSA. Input.For more information, see the overview of the UnityEngine.XR.WSA.Input APIs.

Replanteamiento de control frente a pose de punteroGrip pose vs. pointing pose

Windows Mixed Reality admite controladores de movimiento de diferentes factores de forma.Windows Mixed Reality supports motion controllers in different form factors. El diseño de cada controlador difiere en su relación entre la posición del usuario y la dirección de "avance" natural que las aplicaciones deben usar para apuntar al representar el 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 mejor estos controladores, hay dos tipos de supuestos que puede investigar para cada origen de interacción:To better represent these controllers, there are two kinds of poses you can investigate for each interaction source:

  • La función de control, que representa la ubicación de la palma de una mano detectada por un HoloLens o la palma que contiene un controlador de movimiento.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.
    • En los auriculares más envolventes, este planteamiento se usa mejor para presentar la mano del usuario o un objeto mantenido en la mano del usuario, como un arma o una pistola.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.
    • La posición del puño: Palm centroide cuando mantiene el controlador de forma natural, se ajusta hacia la izquierda o derecha para centrar la posición dentro del control.The grip position: The palm centroid when holding the controller naturally, adjusted left or right to center the position within the grip.
    • Eje derecho de la orientación del puño: cuando se abre por completo la mano para formar una postura plana de 5 dedos, el rayo perpendicular a la palma (hacia delante de la mano izquierda y hacia atrás desde la mano derecha)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)
    • El eje hacia delante de la orientación del puño: al cerrar la mano parcialmente, como si fuera el controlador, el rayo que señala "reenviar" a través del tubo formado por los dedos no Thumb.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.
    • Eje hacia arriba de la orientación del puño: el eje hacia arriba implícito por las definiciones derecha y hacia delante.The grip orientation's Up axis: The Up axis implied by the Right and Forward definitions.
    • Puede acceder a la representación del puño a través de la API de entrada entre proveedores (XR) de Unity . InputTracking. GetLocalPosition/Rotation) o a través de la API específica de Windows (SourceState. SourcePose. TryGetPosition/Rotation, que solicita la pose de control).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).
  • Representación del puntero que representa la punta del controlador que señala hacia delante.The pointer pose, representing the tip of the controller pointing forward.
    • Esta representación se usa mejor para Raycast cuando se señala a la interfaz de usuario cuando se representa el propio modelo del controlador.This pose is best used to raycast when pointing at UI when you're rendering the controller model itself.
    • Actualmente, la pose de puntero solo está disponible a través de la API específica de Windows (sourceState. sourcePose. TryGetPosition/Rotation, lo que solicita la pose de puntero).Currently, the pointer pose is available only through the Windows-specific API (sourceState.sourcePose.TryGetPosition/Rotation, requesting the Pointer pose).

Estas coordenadas de pose se expresan en coordenadas universales de Unity.These pose coordinates are all expressed in Unity world coordinates.

Consulta tambiénSee also