Para que el Editor de Unity admita controladores con seguimiento OpenVR, el subsistema Unity VR presenta las entradas del controlador VR como joysticks independientes. Utilice la clase UnityEngine.Input para acceder a los valores de los ejes y botones.
La integración de Unity de OpenVR no se refiere a ningún hardware específico cuando se presentan los estados de los ejes y botones. Esta página proporciona las asignaciones de ejes y botones para los tres tipos de controladores compatibles con OpenVR: HTC Vive, Oculus Touch y Valve Knuckles 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.
Esta sección proporciona diagramas para cada tipo de controlador admitido por dispositivos OpenVR, junto con información sobre la asignación de entrada de Unity interna para cada botón del controlador.
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.
El siguiente diagrama muestra las diferentes entradas disponibles cuando se usan controladores Knuckles 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 | Controlador Knuckles (nudillos) de Valve | 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 | |
Left Controller Index Finger Cap Sensor | 20 | 0.0 to 1.0 | ||||
Right Controller Index Finger Cap Sensor | 21 | 0.0 to 1.0 | ||||
Left Controller Middle Finger Cap Sensor | 22 | 0.0 to 1.0 | ||||
Right Controller Middle Finger Cap Sensor | 23 | 0.0 to 1.0 | ||||
Left Controller Ring Finger Cap Sensor | 24 | 0.0 to 1.0 | ||||
Right Controller Ring Finger Cap Sensor | 25 | 0.0 to 1.0 | ||||
Left Controller Pinky Finger Cap Sensor | 26 | 0.0 to 1.0 | ||||
Right Controller Pinky Finger Cap Sensor | 27 | 0.0 to 1.0 | ||||
Nota: Las funciones de hardware que no se enumeran en la tabla anterior no se exponen a través de la API de OpenVR y, por lo tanto, no se exponen a través del sistema de entrada de Unity.
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 gatillo de agarre difiere entre las plataformas:
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).
El agarre en el controlador Valve Knuckles es un promedio ponderado de los valores de entrada para cada uno de los sensores táctiles individuales.