Controller Mapping using OpenXR
Buttons and Triggers:
Return bool values.
CommonUsages.primaryButton: Typically the primary button (e.g., the "A" or "X" button on many VR controllers).
CommonUsages.secondaryButton: Typically the secondary button (e.g., the "B" or "Y" button on many VR controllers).
CommonUsages.gripButton: The grip button (used for gripping an object in VR).
CommonUsages.primaryTouch: Touch state of the primary button (e.g., a touchpad or button).
CommonUsages.secondaryTouch: Touch state of the secondary button.
CommonUsages.menuButton: The menu button on the controller, typically used to open the VR menu.
Thumbsticks and Joysticks:
Return Vector2 axis value.
CommonUsages.primary2DAxis: The 2D axis of the primary thumbstick (typically a joystick).
CommonUsages.secondary2DAxis: The 2D axis of the secondary thumbstick.
CommonUsages.primary2DAxisClick: The click state of the primary thumbstick (usually a press of the thumbstick).
CommonUsages.secondary2DAxisClick: The click state of the secondary thumbstick.
Haptic Feedback:
CommonUsages.haptic: General haptic feedback capability.
CommonUsages.hapticCapabilities: Information about the haptic feedback capabilities of a device.
Motion Sensors:
CommonUsages.devicePosition: The position of the input device in 3D space.
CommonUsages.deviceRotation: The rotation of the input device in 3D space.
CommonUsages.deviceVelocity: The velocity of the input device in 3D space.
CommonUsages.deviceAngularVelocity: The angular velocity of the input device.
Accelerometer and Gyroscope:
CommonUsages.acceleration: The accelerometer reading (x, y, z values of acceleration).
CommonUsages.angularAcceleration: The angular acceleration reading from the device's accelerometer.
CommonUsages.gyroscope: The gyroscope reading (rotation around the x, y, and z axes).
Hand and Finger Tracking (if supported by the device):
CommonUsages.leftHand: Information related to the left hand (for hand-tracking-enabled devices).
CommonUsages.rightHand: Information related to the right hand.
CommonUsages.indexFinger: Information about the index finger.
CommonUsages.thumb: Information about the thumb.
Additional Usages:
CommonUsages.trigger: The trigger value (could be a 1D axis, usually for trigger buttons).
CommonUsages.secondaryTrigger: The secondary trigger value (another button, typically used in some controllers).
CommonUsages.button1 to CommonUsages.button16: Additional generic button states (often useful for custom controllers or more complex devices).
Example Usage
- Initialize InputDevice variable:
using UnityEngine.XR;
private InputDevice rightHandDevice;
- Get the right device and value:
// ensure it's valid
if (!rightHandDevice.isValid) {
rightHandDevice = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);
}
// get the index trigger value
if (rightHandDevice.TryGetFeatureValue(CommonUsages.triggerButton, out bool triggerValue))
{
Debug.Log("Right hand trigger value: " + triggerValue);
}