Version: 2019.2
Input for Windows Mixed Reality
Input for Oculus

Entrada para controladores OpenVR

Unity represents VR controller inputs as separate joysticks. Use the UnityEngine.Input class to access button and axis values. The OpenVR Unity integration doesn’t refer to any specific hardware when presenting axis and button states.

This page provides the axis and button mappings for the three types of controllers supported by OpenVR:

  • HTC Vive
  • Oculus Touch
  • Valve Index

Note: Unity doesn’t support individual finger tracking information for Valve Index controllers.

Denominación de convención y detección

Cuando se configuran y conectan correctamente, todos los controladores compatibles con OpenVR se denominan internamente como OpenVR Controller - Left o OpenVR Controller - Right. Acceda a este nombre a través de la lista devuelta por UnityEngine.Input.GetJoystickNames(). Cuando están disponibles, estos controladores aparecen resaltados en verde en el menú de estado de SteamVR cuando se prueban con Steam. Para acceder a este menú, debe tener Steam y SteamVR instalados y ejecutándose en su máquina.

Menú de estado de Steam VR
Menú de estado de Steam VR

Puede probar la disponibilidad de estos controladores comprobando periódicamente su presencia en la lista de nombres de joystick mediante script. Cuando los controladores se apagan o cuando se quitan las baterías, un string vacío reemplaza su nombre en la lista devuelta porUnityEngine.Input.GetJoystickNames(). Cuando los controladores se vuelven a encender, su nombre vuelve a aparecer en la lista de joysticks devueltos.

Mapeos del sistema de entrada de Unity

This section provides mapping information for each type of controller that OpenVR devices supports.

Controladores HTC Vive

El siguiente diagrama muestra las diferentes entradas disponibles en los controladores HTC Vive para su uso en aplicaciones de realidad virtual.

HTC Vive controller inputs mapping (Image courtesy of developer.viveport.com)
HTC Vive controller inputs mapping (Image courtesy of developer.viveport.com)
1 Botón de menú
2 Trackpad
3 Botón del sistema
4 Luz de estado
5 Puerto micro-USB
6 Sensor de seguimiento
7 Gatillo
8 Botón de agarre

Controladores táctiles Oculus

El siguiente diagrama muestra las diferentes entradas disponibles en los controladores Oculus Touch para su uso en aplicaciones de realidad virtual.

Correlación de entrada del controlador Oculus Touch (Imagen cortesía de developer.oculus.com)
Correlación de entrada del controlador Oculus Touch (Imagen cortesía de developer.oculus.com)

Valve Index controllers

La siguiente tabla enumera las entradas del controlador para cada controlador compatible con OpenVR, sus tipos de interacción, el eje de Unity y los ID de los botones, junto con el rango de valores para cada eje.

HTC Vive Controller Oculus Touch Controller Valve Index Controller Tipo de Interacción ID del Botón de Unity ID del Eje de Unity Rango de Valor del Eje de Unity
Left Controller Menu Button (1) Button.Three Left Controller Inner Face Button Presionado 2
Right Controller Menu Button (1) Button.One Right Controller Inner Face Button Presionado 0
Left Controller Outer Face Button Presionado 3
Left Controller Outer Face Button Presionado 1
Left Controller Trackpad (2) Button.PrimaryThumbstick Left Controller Trackpad Presionado 8
Right Controller Trackpad (2) Button.SecondaryThumbstick Right Controller Trackpad Presionado 9
Left Controller Trackpad (2) Button.PrimaryThumbstick Left Controller Trackpad Touch 16
Right Controller Trackpad (2) Button.SecondaryThumbstick Right Controller Trackpad Touch 17
Left Controller Trackpad (2) Axis2D.PrimaryThumbstick Left Controller Trackpad Movimiento Horizontal 1 –1.0 to 1.0
Left Controller Trackpad (2) Axis2D.PrimaryThumbstick Left Controller Trackpad Movimiento Vertical 2 –1.0 to 1.0
Right Controller Trackpad (2) Axis2D.SecondaryThumbstick Right Controller Trackpad Movimiento Horizontal 4 –1.0 to 1.0
Right Controller Trackpad (2) Axis2D.SecondaryThumbstick Right Controller Trackpad Movimiento Vertical 5 –1.0 to 1.0
Left Controller Trigger (7) Axis1D.PrimaryIndexTrigger Left Controller Trigger Touch 14
Right Controller Trigger (7) Axis1D.SecondaryIndexTrigger Right Controller Trigger Touch 15
Left Controller Trigger (7) Axis1D.PrimaryIndexTrigger Left Controller Trigger Apretar 9 0.0 to 1.0
Right Controller Trigger (7) Axis1D.SecondaryIndexTrigger Right Controller Trigger Apretar 10 0.0 to 1.0
Left Controller Grip Button (8) Axis1D.PrimaryHandTrigger Left Controller Grip Average Apretar 11 0.0 to 1.0
Right Controller Grip Button (8) Axis1D.SecondaryHandTrigger Right Controller Grip Average Apretar 12 0.0 to 1.0

Diferencias del controlador importantes

Al desarrollar aplicaciones para admitir dispositivos OpenVR, es importante tener en cuenta ciertas diferencias en los desencadenantes de eventos de entrada y las tasas de respuesta para los botones en los tres controladores.

Los eventos de entrada Unity Touch difieren para cada controlador de plataforma:

  • El Event System genera eventos Input Touch para los gatillos en los controladores HTC Vive cuando el usuario comienza a apretar el gatillo.
  • The Event System generates Input Touch events for the triggers on Oculus Touch and Valve Index controllers when Unity Input detects a touch - no trigger squeeze is necessary.

The grip trigger differs between HTC Vive and Oculus Touch controllers as follows:

  • Los controladores HTC Vive tienen dos botones de agarre, pero ambos se asignan al mismo eje. El valor de estos botones es 0.0 cuando no se presiona y 1.0 cuando se presiona (los valores intermedios entre 0.0 y 1.0 no son posibles).

  • El agarre en el Controlador Touch de Oculus es un disparador analógico con un rango de 0.0 a 1.0 (valores intermedios son posibles).

Input for Windows Mixed Reality
Input for Oculus