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:
Note: Unity doesn’t support individual finger tracking information for Valve Index controllers.
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.
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.
This section provides mapping information for each type of controller that OpenVR devices supports.
El siguiente diagrama muestra las diferentes entradas disponibles en los controladores HTC Vive para su uso en aplicaciones de realidad virtual.
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 |
El siguiente diagrama muestra las diferentes entradas disponibles en los controladores Oculus Touch para su uso en aplicaciones de realidad virtual.
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 | |
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:
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).