API reference
API reference
Select your platform
No SDKs available
No versions available

OVRInput Class

OVRInput exposes a unified input API for multiple controller types.
It is used to query virtual or raw controller state, such as buttons, thumbsticks, triggers, and capacitive touch data. It supports the Meta Quest Touch controllers. For more information, see Controller Input and Tracking Overview.

Member Enumerations

Enumeration Button

Virtual button mappings that allow the same input bindings to work across different controllers.
None
Maps to RawButton: [Gamepad, Touch, LTouch, RTouch, Remote: None].
One
Maps to RawButton: [Gamepad, Touch, RTouch: A], [LTouch: X], [Remote: Start].
Two
Maps to RawButton: [Gamepad, Touch, RTouch: B], [LTouch: Y], [Remote: Back].
Three
Maps to RawButton: [Gamepad, Touch: X], [LTouch, RTouch, Remote: None].
Four
Maps to RawButton: [Gamepad, Touch: Y], [LTouch, RTouch, Remote: None].
Start
Maps to RawButton: [Gamepad: Start], [Touch, LTouch, Remote: Start], [RTouch: None].
Back
Maps to RawButton: [Gamepad, Remote: Back], [Touch, LTouch, RTouch: None].
PrimaryShoulder
Maps to RawButton: [Gamepad: LShoulder], [Touch, LTouch, RTouch, Remote: None].
PrimaryIndexTrigger
Maps to RawButton: [Gamepad, Touch, LTouch: LIndexTrigger], [RTouch: RIndexTrigger], [Remote: None].
PrimaryHandTrigger
Maps to RawButton: [Touch, LTouch: LHandTrigger], [RTouch: RHandTrigger], [Gamepad, Remote: None].
PrimaryThumbstick
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstick], [RTouch: RThumbstick], [Remote: None].
PrimaryThumbstickUp
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickUp], [RTouch: RThumbstickUp], [Remote: None].
PrimaryThumbstickDown
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickDown], [RTouch: RThumbstickDown], [Remote: None].
PrimaryThumbstickLeft
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickLeft], [RTouch: RThumbstickLeft], [Remote: None].
PrimaryThumbstickRight
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickRight], [RTouch: RThumbstickRight], [Remote: None].
PrimaryTouchpad
Maps to RawButton: [Gamepad, Touch, LTouch, RTouch, Remote: None].
SecondaryShoulder
Maps to RawButton: [Gamepad: RShoulder], [Touch, LTouch, RTouch, Remote: None].
SecondaryIndexTrigger
Maps to RawButton: [Gamepad, Touch: RIndexTrigger], [LTouch, RTouch, Remote: None].
SecondaryHandTrigger
Maps to RawButton: [Touch: RHandTrigger], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryThumbstick
Maps to RawButton: [Gamepad, Touch: RThumbstick], [LTouch, RTouch, Remote: None].
SecondaryThumbstickUp
Maps to RawButton: [Gamepad, Touch: RThumbstickUp], [LTouch, RTouch, Remote: None].
SecondaryThumbstickDown
Maps to RawButton: [Gamepad, Touch: RThumbstickDown], [LTouch, RTouch, Remote: None].
SecondaryThumbstickLeft
Maps to RawButton: [Gamepad, Touch: RThumbstickLeft], [LTouch, RTouch, Remote: None].
SecondaryThumbstickRight
Maps to RawButton: [Gamepad, Touch: RThumbstickRight], [LTouch, RTouch, Remote: None].
SecondaryTouchpad
Maps to RawButton: [Gamepad, Touch, LTouch, RTouch, Remote: None].
DpadUp
Maps to RawButton: [Gamepad, Remote: DpadUp], [Touch, LTouch, RTouch: None].
DpadDown
Maps to RawButton: [Gamepad, Remote: DpadDown], [Touch, LTouch, RTouch: None].
DpadLeft
Maps to RawButton: [Gamepad, Remote: DpadLeft], [Touch, LTouch, RTouch: None].
DpadRight
Maps to RawButton: [Gamepad, Remote: DpadRight], [Touch, LTouch, RTouch: None].
Up
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickUp], [RTouch: RThumbstickUp], [Remote: DpadUp].
Down
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickDown], [RTouch: RThumbstickDown], [Remote: DpadDown].
Left
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickLeft], [RTouch: RThumbstickLeft], [Remote: DpadLeft].
Right
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickRight], [RTouch: RThumbstickRight], [Remote: DpadRight].
Any
Maps to RawButton: [Gamepad, Touch, LTouch, RTouch: Any].

Enumeration RawButton

Raw button mappings that can be used to directly query the state of a controller.
None
Maps to Physical Button: [Gamepad, Touch, LTouch, RTouch, Remote: None].
A
Maps to Physical Button: [Gamepad, Touch, RTouch: A], [LTouch, Remote: None].
B
Maps to Physical Button: [Gamepad, Touch, RTouch: B], [LTouch, Remote: None].
X
Maps to Physical Button: [Gamepad, Touch, LTouch: X], [RTouch, Remote: None].
Y
Maps to Physical Button: [Gamepad, Touch, LTouch: Y], [RTouch, Remote: None].
Start
Maps to Physical Button: [Gamepad, Touch, LTouch, Remote: Start], [RTouch: None].
Back
Maps to Physical Button: [Gamepad, Remote: Back], [Touch, LTouch, RTouch: None].
LShoulder
Maps to Physical Button: [Gamepad: LShoulder], [Touch, LTouch, RTouch, Remote: None].
LIndexTrigger
Maps to Physical Button: [Gamepad, Touch, LTouch: LIndexTrigger], [RTouch, Remote: None].
LHandTrigger
Maps to Physical Button: [Touch, LTouch: LHandTrigger], [Gamepad, RTouch, Remote: None].
LThumbstick
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstick], [RTouch, Remote: None].
LThumbstickUp
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstickUp], [RTouch, Remote: None].
LThumbstickDown
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstickDown], [RTouch, Remote: None].
LThumbstickLeft
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstickLeft], [RTouch, Remote: None].
LThumbstickRight
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstickRight], [RTouch, Remote: None].
LTouchpad
Maps to Physical Button: [Gamepad, Touch, LTouch, RTouch, Remote: None].
RShoulder
Maps to Physical Button: [Gamepad: RShoulder], [Touch, LTouch, RTouch, Remote: None].
RIndexTrigger
Maps to Physical Button: [Gamepad, Touch, RTouch: RIndexTrigger], [LTouch, Remote: None].
RHandTrigger
Maps to Physical Button: [Touch, RTouch: RHandTrigger], [Gamepad, LTouch, Remote: None].
RThumbstick
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstick], [LTouch, Remote: None].
RThumbstickUp
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstickUp], [LTouch, Remote: None].
RThumbstickDown
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstickDown], [LTouch, Remote: None].
RThumbstickLeft
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstickLeft], [LTouch, Remote: None].
RThumbstickRight
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstickRight], [LTouch, Remote: None].
RTouchpad
Maps to Physical Button: [Gamepad, Touch, LTouch, RTouch, Remote: None].
DpadUp
Maps to Physical Button: [Gamepad, Remote: DpadUp], [Touch, LTouch, RTouch: None].
DpadDown
Maps to Physical Button: [Gamepad, Remote: DpadDown], [Touch, LTouch, RTouch: None].
DpadLeft
Maps to Physical Button: [Gamepad, Remote: DpadLeft], [Touch, LTouch, RTouch: None].
DpadRight
Maps to Physical Button: [Gamepad, Remote: DpadRight], [Touch, LTouch, RTouch: None].
Any
Maps to Physical Button: [Gamepad, Touch, LTouch, RTouch, Remote: Any].

Enumeration Touch

Virtual capacitive touch mappings that allow the same input bindings to work across different controllers with capacitive touch support.
None
Maps to RawTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
One
Maps to RawTouch: [Touch, RTouch: A], [LTouch: X], [Gamepad, Remote: None].
Two
Maps to RawTouch: [Touch, RTouch: B], [LTouch: Y], [Gamepad, Remote: None].
Three
Maps to RawTouch: [Touch: X], [Gamepad, LTouch, RTouch, Remote: None].
Four
Maps to RawTouch: [Touch: Y], [Gamepad, LTouch, RTouch, Remote: None].
PrimaryIndexTrigger
Maps to RawTouch: [Touch, LTouch: LIndexTrigger], [RTouch: RIndexTrigger], [Gamepad, Remote: None].
PrimaryThumbstick
Maps to RawTouch: [Touch, LTouch: LThumbstick], [RTouch: RThumbstick], [Gamepad, Remote: None].
PrimaryThumbRest
Maps to RawTouch: [Touch, LTouch: LThumbRest], [RTouch: RThumbRest], [Gamepad, Remote: None].
PrimaryTouchpad
Maps to RawTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
SecondaryIndexTrigger
Maps to RawTouch: [Touch: RIndexTrigger], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryThumbstick
Maps to RawTouch: [Touch: RThumbstick], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryThumbRest
Maps to RawTouch: [Touch: RThumbRest], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryTouchpad
Maps to RawTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
Any
Maps to RawTouch: [Touch, LTouch, RTouch: Any], [Gamepad, Remote: None].

Enumeration RawTouch

Raw capacitive touch mappings that can be used to directly query the state of a controller.
None
Maps to Physical Touch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
A
Maps to Physical Touch: [Touch, RTouch: A], [Gamepad, LTouch, Remote: None].
B
Maps to Physical Touch: [Touch, RTouch: B], [Gamepad, LTouch, Remote: None].
X
Maps to Physical Touch: [Touch, LTouch: X], [Gamepad, RTouch, Remote: None].
Y
Maps to Physical Touch: [Touch, LTouch: Y], [Gamepad, RTouch, Remote: None].
LIndexTrigger
Maps to Physical Touch: [Touch, LTouch: LIndexTrigger], [Gamepad, RTouch, Remote: None].
LThumbstick
Maps to Physical Touch: [Touch, LTouch: LThumbstick], [Gamepad, RTouch, Remote: None].
LThumbRest
Maps to Physical Touch: [Touch, LTouch: LThumbRest], [Gamepad, RTouch, Remote: None].
LTouchpad
Maps to Physical Touch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
RIndexTrigger
Maps to Physical Touch: [Touch, RTouch: RIndexTrigger], [Gamepad, LTouch, Remote: None].
RThumbstick
Maps to Physical Touch: [Touch, RTouch: RThumbstick], [Gamepad, LTouch, Remote: None].
RThumbRest
Maps to Physical Touch: [Touch, RTouch: RThumbRest], [Gamepad, LTouch, Remote: None].
RTouchpad
Maps to Physical Touch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
Any
Maps to Physical Touch: [Touch, LTouch, RTouch: Any], [Gamepad, Remote: None].

Enumeration NearTouch

Virtual near touch mappings that allow the same input bindings to work across different controllers with near touch support.
A near touch uses the capacitive touch sensors of a controller to detect approximate finger proximity prior to a full touch being reported.
None
Maps to RawNearTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
PrimaryIndexTrigger
Maps to RawNearTouch: [Touch, LTouch: LIndexTrigger], [RTouch: RIndexTrigger], [Gamepad, Remote: None].
PrimaryThumbButtons
Maps to RawNearTouch: [Touch, LTouch: LThumbButtons], [RTouch: RThumbButtons], [Gamepad, Remote: None].
SecondaryIndexTrigger
Maps to RawNearTouch: [Touch: RIndexTrigger], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryThumbButtons
Maps to RawNearTouch: [Touch: RThumbButtons], [Gamepad, LTouch, RTouch, Remote: None].
Any
Maps to RawNearTouch: [Touch, LTouch, RTouch: Any], [Gamepad, Remote: None].

Enumeration RawNearTouch

Raw near touch mappings that can be used to directly query the state of a controller.
None
Maps to Physical NearTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
LIndexTrigger
Maps to Physical NearTouch: [Touch, LTouch: Implies finger is in close proximity to LIndexTrigger.], [Gamepad, RTouch, Remote: None].
LThumbButtons
Maps to Physical NearTouch: [Touch, LTouch: Implies thumb is in close proximity to LThumbstick OR X/Y buttons.], [Gamepad, RTouch, Remote: None].
RIndexTrigger
Maps to Physical NearTouch: [Touch, RTouch: Implies finger is in close proximity to RIndexTrigger.], [Gamepad, LTouch, Remote: None].
RThumbButtons
Maps to Physical NearTouch: [Touch, RTouch: Implies thumb is in close proximity to RThumbstick OR A/B buttons.], [Gamepad, LTouch, Remote: None].
Any
Maps to Physical NearTouch: [Touch, LTouch, RTouch: Any], [Gamepad, Remote: None].

Enumeration Axis1D

Virtual 1-dimensional axis (float) mappings that allow the same input bindings to work across different controllers.
None
Maps to RawAxis1D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
PrimaryIndexTrigger
Maps to RawAxis1D: [Gamepad, Touch, LTouch: LIndexTrigger], [RTouch: RIndexTrigger], [Remote: None].
PrimaryHandTrigger
Maps to RawAxis1D: [Touch, LTouch: LHandTrigger], [RTouch: RHandTrigger], [Gamepad, Remote: None].
SecondaryIndexTrigger
Maps to RawAxis1D: [Gamepad, Touch: RIndexTrigger], [LTouch, RTouch, Remote: None].
SecondaryHandTrigger
Maps to RawAxis1D: [Touch: RHandTrigger], [Gamepad, LTouch, RTouch, Remote: None].
PrimaryIndexTriggerCurl
= 0x10
PrimaryIndexTriggerSlide
= 0x20
PrimaryThumbRestForce
= 0x40
PrimaryStylusForce
= 0x80
SecondaryIndexTriggerCurl
= 0x100
SecondaryIndexTriggerSlide
= 0x200
SecondaryThumbRestForce
= 0x400
SecondaryStylusForce
= 0x800
PrimaryIndexTriggerForce
= 0x1000
SecondaryIndexTriggerForce
= 0x2000
Any
Maps to RawAxis1D: [Gamepad, Touch, LTouch, RTouch: Any], [Remote: None].

Enumeration RawAxis1D

Raw 1-dimensional axis (float) mappings that can be used to directly query the state of a controller.
None
Maps to Physical Axis1D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
LIndexTrigger
Maps to Physical Axis1D: [Gamepad, Touch, LTouch: LIndexTrigger], [RTouch, Remote: None].
LHandTrigger
Maps to Physical Axis1D: [Touch, LTouch: LHandTrigger], [Gamepad, RTouch, Remote: None].
RIndexTrigger
Maps to Physical Axis1D: [Gamepad, Touch, RTouch: RIndexTrigger], [LTouch, Remote: None].
RHandTrigger
Maps to Physical Axis1D: [Touch, RTouch: RHandTrigger], [Gamepad, LTouch, Remote: None].
LIndexTriggerCurl
= 0x10
LIndexTriggerSlide
= 0x20
LThumbRestForce
= 0x40
LStylusForce
= 0x80
RIndexTriggerCurl
= 0x100
RIndexTriggerSlide
= 0x200
RThumbRestForce
= 0x400
RStylusForce
= 0x800
LIndexTriggerForce
= 0x1000
RIndexTriggerForce
= 0x2000
Any
Maps to Physical Axis1D: [Gamepad, Touch, LTouch, RTouch: Any], [Remote: None].

Enumeration Axis2D

Virtual 2-dimensional axis (Vector2) mappings that allow the same input bindings to work across different controllers.
None
Maps to RawAxis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
PrimaryThumbstick
Maps to RawAxis2D: [Gamepad, Touch, LTouch: LThumbstick], [RTouch: RThumbstick], [Remote: None].
PrimaryTouchpad
Maps to RawAxis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
SecondaryThumbstick
Maps to RawAxis2D: [Gamepad, Touch: RThumbstick], [LTouch, RTouch, Remote: None].
SecondaryTouchpad
Maps to RawAxis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
Any
Maps to RawAxis2D: [Gamepad, Touch, LTouch, RTouch: Any], [Remote: None].

Enumeration RawAxis2D

Raw 2-dimensional axis (Vector2) mappings that can be used to directly query the state of a controller.
None
Maps to Physical Axis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
LThumbstick
Maps to Physical Axis2D: [Gamepad, Touch, LTouch: LThumbstick], [RTouch, Remote: None].
LTouchpad
Maps to Physical Axis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
RThumbstick
Maps to Physical Axis2D: [Gamepad, Touch, RTouch: RThumbstick], [LTouch, Remote: None].
RTouchpad
Maps to Physical Axis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
Any
Maps to Physical Axis2D: [Gamepad, Touch, LTouch, RTouch: Any], [Remote: None].

Enumeration OpenVRButton

OpenVR Controller State Enum.
None
= 0
Two
= 0x0002
Thumbstick
= 0x100000000
Grip
= 0x0004

Enumeration Controller

Identifies a controller which can be used to query the virtual or raw input state.
None
Null controller.
LTouch
Left Oculus Touch controller. Virtual input mapping differs from the combined L/R Touch mapping.
RTouch
Right Oculus Touch controller. Virtual input mapping differs from the combined L/R Touch mapping.
Touch
Combined Left/Right pair of Oculus Touch controllers.
Remote
Oculus Remote controller.
Gamepad
Xbox 360 or Xbox One gamepad on PC. Generic gamepad on Android.
Hands
Left Hand provided by hand-tracking.
LHand
Left Hand provided by hand-tracking.
RHand
Right Hand provided by hand-tracking.
Active
Default controller. Represents the controller that most recently registered a button press from the user.
All
Represents the logical OR of all controllers.

Enumeration Handedness

Unsupported
= OVRPlugin.Handedness.Unsupported
LeftHanded
= OVRPlugin.Handedness.LeftHanded
RightHanded
= OVRPlugin.Handedness.RightHanded

Enumeration HapticsLocation

None
= OVRPlugin.HapticsLocation.None
Hand
= OVRPlugin.HapticsLocation.Hand
Thumb
= OVRPlugin.HapticsLocation.Thumb
Index
= OVRPlugin.HapticsLocation.Index

Enumeration InteractionProfile

None
= OVRPlugin.InteractionProfile.None
Touch
= OVRPlugin.InteractionProfile.Touch
TouchPro
= OVRPlugin.InteractionProfile.TouchPro
TouchPlus
= OVRPlugin.InteractionProfile.TouchPlus

Enumeration Hand

None
= OVRPlugin.Hand.None
HandLeft
= OVRPlugin.Hand.HandLeft
HandRight
= OVRPlugin.Hand.HandRight

Enumeration InputDeviceShowState

Always
No description available
ControllerInHandOrNoHand
No description available
ControllerInHand
No description available
ControllerNotInHand
No description available
NoHand
No description available

Enumeration ControllerInHandState

NoHand
No description available
ControllerInHand
No description available
ControllerNotInHand
No description available

Enumeration OpenVRController

OpenVR Controller Enum.
Unknown
= 0
OculusTouch
= 1
ViveController
= 2
WindowsMRController
= 3

Public Statics

static readonly float AXIS_AS_BUTTON_THRESHOLD[Get]
static readonly float AXIS_DEADZONE_THRESHOLD[Get]
static List< OVRControllerBase > controllers[Get]
static Controller activeControllerType[Get]
static Controller connectedControllerTypes[Get]
static OVRPlugin.Step stepType[Get]
static int fixedUpdateCount[Get]
static OpenVRControllerDetails[] openVRControllerDetails[Get]

Properties

static bool pluginSupportsActiveController[Get]

Static Member Functions

Updates the internal state of OVRInput.
Must be called manually if used independently from OVRManager.
Updates the internal physics state of OVRInput.
Must be called manually if used independently from OVRManager.
Returns the the current interaction profile for a given hand.
This can be used to distinguish between Touch and Touch Pro controllers.
Returns true if the given Controller's orientation is currently tracked.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return false.
Returns true if the given Controller's orientation is currently valid.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return false.
Returns true if the given Controller's position is currently tracked.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return false.
Returns true if the given Controller's position is currently valid.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return false.
Returns a flag indicating whether or not the hand poses are controlled by controller data.
Switch to simultaneous hands and controllers mode on device.
Switch back from simultaneous hands and controllers mode to the app config-specified mono-modality mode on device.
Returns a flag indicating whether or not the controller is held.
Gets the active controller type for the given handedness.
Gets the position of the given Controller local to its tracking space.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return Vector3.zero.
Gets the linear velocity of the given Controller local to its tracking space.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return Vector3.zero.
(Deprecated) Gets the linear acceleration of the given Controller local to its tracking space.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return Vector3.zero.
Gets the rotation of the given Controller local to its tracking space.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return Quaternion.identity.
Gets the angular velocity of the given Controller local to its tracking space in radians per second around each axis.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return Vector3.zero.
(Deprecated) Gets the angular acceleration of the given Controller local to its tracking space in radians per second per second around each axis.
Only supported for Oculus LTouch and RTouch controllers. Non-tracked controllers will return Vector3.zero.
Gets the current position, rotation and velocity of given Controller local to its tracking space without prediction.
Only supported for Oculus LTouch and RTouch controllers, when using OpenXR backend
Gets the dominant hand that the user has specified in settings, for mobile devices.
Gets the current state of the given virtual button mask with the given controller mask.
Returns true if any masked button is down on any masked controller.
Gets the current state of the given raw button mask with the given controller mask.
Returns true if any masked button is down on any masked controllers.
Gets the current down state of the given virtual button mask with the given controller mask.
Returns true if any masked button was pressed this frame on any masked controller and no masked button was previously down last frame.
Gets the current down state of the given raw button mask with the given controller mask.
Returns true if any masked button was pressed this frame on any masked controller and no masked button was previously down last frame.
Gets the current up state of the given virtual button mask with the given controller mask.
Returns true if any masked button was released this frame on any masked controller and no other masked button is still down this frame.
Gets the current up state of the given raw button mask with the given controller mask.
Returns true if any masked button was released this frame on any masked controller and no other masked button is still down this frame.
Gets the current state of the given virtual touch mask with the given controller mask.
Returns true if any masked touch is down on any masked controller.
Gets the current state of the given raw touch mask with the given controller mask.
Returns true if any masked touch is down on any masked controllers.
Gets the current down state of the given virtual touch mask with the given controller mask.
Returns true if any masked touch was pressed this frame on any masked controller and no masked touch was previously down last frame.
Gets the current down state of the given raw touch mask with the given controller mask.
Returns true if any masked touch was pressed this frame on any masked controller and no masked touch was previously down last frame.
Gets the current up state of the given virtual touch mask with the given controller mask.
Returns true if any masked touch was released this frame on any masked controller and no other masked touch is still down this frame.
Gets the current up state of the given raw touch mask with the given controller mask.
Returns true if any masked touch was released this frame on any masked controller and no other masked touch is still down this frame.
Gets the current state of the given virtual near touch mask with the given controller mask.
Returns true if any masked near touch is down on any masked controller.
Gets the current state of the given raw near touch mask with the given controller mask.
Returns true if any masked near touch is down on any masked controllers.
Gets the current down state of the given virtual near touch mask with the given controller mask.
Returns true if any masked near touch was pressed this frame on any masked controller and no masked near touch was previously down last frame.
Gets the current down state of the given raw near touch mask with the given controller mask.
Returns true if any masked near touch was pressed this frame on any masked controller and no masked near touch was previously down last frame.
Gets the current up state of the given virtual near touch mask with the given controller mask.
Returns true if any masked near touch was released this frame on any masked controller and no other masked near touch is still down this frame.
Gets the current up state of the given raw near touch mask with the given controller mask.
Returns true if any masked near touch was released this frame on any masked controller and no other masked near touch is still down this frame.
Gets the current state of the given virtual 1-dimensional axis mask on the given controller mask.
Returns the value of the largest masked axis across all masked controllers. Values range from 0 to 1.
Gets the current state of the given raw 1-dimensional axis mask on the given controller mask.
Returns the value of the largest masked axis across all masked controllers. Values range from 0 to 1.
Gets the current state of the given virtual 2-dimensional axis mask on the given controller mask.
Returns the vector of the largest masked axis across all masked controllers. Values range from -1 to 1.
Gets the current state of the given raw 2-dimensional axis mask on the given controller mask.
Returns the vector of the largest masked axis across all masked controllers. Values range from -1 to 1.
Returns a mask of all currently connected controller types.
Returns true if the specified controller type is currently connected.
Returns the current active controller type.
Sets OpenVR left and right controller poses local to tracking space.
Accesses OpenVR properties about a given deviceID.
Especially useful for differentiating per type of OpenVR device (i.e. Oculus, Vive)
Activates vibration with the given frequency and amplitude with the given controller mask.
Ignored on controllers that do not support vibration. Expected values range from 0 to 1.
Activates vibration with the given frequency and amplitude with the given controller mask.
Ignored on controllers that do not support vibration. Expected values range from 0 to 1.
static void SetControllerHapticsAmplitudeEnvelope
( HapticsAmplitudeEnvelopeVibration hapticsVibration,
Controller controllerMask )
static int SetControllerHapticsPcm
( HapticsPcmVibration hapticsVibration,
Controller controllerMask )
static float GetControllerSampleRateHz
( Controller controllerMask )
Deprecated
Returns the battery percentage remaining for the specified controller. Values range from 0 to 100. Only applicable to controllers that report battery level. Returns 0 for controllers that do not report battery level.
Did you find this page helpful?
Thumbs up icon
Thumbs down icon