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.

Static Fields

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

Properties

pluginSupportsActiveController : bool
[Get]
Signature
bool pluginSupportsActiveController

Static Methods

AreHandPosesGeneratedByControllerData ( stepId , hand )
Returns a flag indicating whether or not the hand poses are controlled by controller data.
Signature
static bool AreHandPosesGeneratedByControllerData(OVRPlugin.Step stepId, OVRInput.Hand hand)
Parameters
stepId: OVRPlugin.Step
hand: OVRInput.Hand
Returns
bool
DisableSimultaneousHandsAndControllers ()
Switch back from simultaneous hands and controllers mode to the app config-specified mono-modality mode on device.
Signature
static bool DisableSimultaneousHandsAndControllers()
Returns
bool
EnableSimultaneousHandsAndControllers ()
Switch to simultaneous hands and controllers mode on device.
Signature
static bool EnableSimultaneousHandsAndControllers()
Returns
bool
FixedUpdate ()
Updates the internal physics state of OVRInput.
Must be called manually if used independently from OVRManager.
Signature
static void FixedUpdate()
Returns
void
Get ( virtualMask , controllerMask )
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.
Signature
static bool Get(Button virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: Button
controllerMask: Controller
Returns
bool
Get ( rawMask , controllerMask )
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.
Signature
static bool Get(RawButton rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawButton
controllerMask: Controller
Returns
bool
Get ( virtualMask , controllerMask )
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.
Signature
static bool Get(Touch virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: Touch
controllerMask: Controller
Returns
bool
Get ( rawMask , controllerMask )
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.
Signature
static bool Get(RawTouch rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawTouch
controllerMask: Controller
Returns
bool
Get ( virtualMask , controllerMask )
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.
Signature
static bool Get(NearTouch virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: NearTouch
controllerMask: Controller
Returns
bool
Get ( rawMask , controllerMask )
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.
Signature
static bool Get(RawNearTouch rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawNearTouch
controllerMask: Controller
Returns
bool
Get ( virtualMask , controllerMask )
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.
Signature
static float Get(Axis1D virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: Axis1D
controllerMask: Controller
Returns
float
Get ( rawMask , controllerMask )
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.
Signature
static float Get(RawAxis1D rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawAxis1D
controllerMask: Controller
Returns
float
Get ( virtualMask , controllerMask )
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.
Signature
static Vector2 Get(Axis2D virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: Axis2D
controllerMask: Controller
Returns
Vector2
Get ( rawMask , controllerMask )
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.
Signature
static Vector2 Get(RawAxis2D rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawAxis2D
controllerMask: Controller
Returns
Vector2
GetActiveController ()
Returns the current active controller type.
Signature
static Controller GetActiveController()
Returns
Controller
GetActiveControllerForHand ( handedness )
Gets the active controller type for the given handedness.
Signature
static OVRInput.Controller GetActiveControllerForHand(Handedness handedness)
Parameters
handedness: Handedness
Returns
OVRInput.Controller
GetConnectedControllers ()
Returns a mask of all currently connected controller types.
Signature
static Controller GetConnectedControllers()
Returns
Controller
GetControllerBatteryPercentRemaining ( controllerMask )
DeprecatedReturns 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.
Signature
static byte GetControllerBatteryPercentRemaining(Controller controllerMask=Controller.Active)
Parameters
controllerMask: Controller
Returns
byte
GetControllerIsInHandState ( hand )
Returns a flag indicating whether or not the controller is held.
Signature
static ControllerInHandState GetControllerIsInHandState(OVRInput.Hand hand)
Parameters
hand: OVRInput.Hand
Returns
ControllerInHandState
GetControllerOrientationTracked ( controllerType )
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.
Signature
static bool GetControllerOrientationTracked(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
bool
GetControllerOrientationValid ( controllerType )
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.
Signature
static bool GetControllerOrientationValid(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
bool
GetControllerParametricProperties ( controllerMask )
Signature
static HapticsParametricProperties GetControllerParametricProperties(Controller controllerMask=Controller.Active)
Parameters
controllerMask: Controller
Returns
HapticsParametricProperties
GetControllerPositionTracked ( controllerType )
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.
Signature
static bool GetControllerPositionTracked(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
bool
GetControllerPositionValid ( controllerType )
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.
Signature
static bool GetControllerPositionValid(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
bool
GetControllerSampleRateHz ( controllerMask )
Signature
static float GetControllerSampleRateHz(Controller controllerMask=Controller.Active)
Parameters
controllerMask: Controller
Returns
float
GetCurrentInteractionProfile ( hand )
Returns the the current interaction profile for a given hand.
This can be used to distinguish between Touch and Touch Pro controllers.
Signature
static OVRInput.InteractionProfile GetCurrentInteractionProfile(OVRInput.Hand hand)
Parameters
hand: OVRInput.Hand
Returns
OVRInput.InteractionProfile
GetDominantHand ()
Gets the dominant hand that the user has specified in settings, for mobile devices.
Signature
static Handedness GetDominantHand()
Returns
Handedness
GetDown ( virtualMask , controllerMask )
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.
Signature
static bool GetDown(Button virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: Button
controllerMask: Controller
Returns
bool
GetDown ( rawMask , controllerMask )
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.
Signature
static bool GetDown(RawButton rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawButton
controllerMask: Controller
Returns
bool
GetDown ( virtualMask , controllerMask )
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.
Signature
static bool GetDown(Touch virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: Touch
controllerMask: Controller
Returns
bool
GetDown ( rawMask , controllerMask )
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.
Signature
static bool GetDown(RawTouch rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawTouch
controllerMask: Controller
Returns
bool
GetDown ( virtualMask , controllerMask )
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.
Signature
static bool GetDown(NearTouch virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: NearTouch
controllerMask: Controller
Returns
bool
GetDown ( rawMask , controllerMask )
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.
Signature
static bool GetDown(RawNearTouch rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawNearTouch
controllerMask: Controller
Returns
bool
GetLocalControllerAcceleration ( controllerType )
(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.
Signature
static Vector3 GetLocalControllerAcceleration(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
Vector3
GetLocalControllerAngularAcceleration ( controllerType )
(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.
Signature
static Vector3 GetLocalControllerAngularAcceleration(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
Vector3
GetLocalControllerAngularVelocity ( controllerType )
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.
Signature
static Vector3 GetLocalControllerAngularVelocity(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
Vector3
GetLocalControllerPosition ( controllerType )
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.
Signature
static Vector3 GetLocalControllerPosition(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
Vector3
GetLocalControllerRotation ( controllerType )
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.
Signature
static Quaternion GetLocalControllerRotation(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
Quaternion
GetLocalControllerStatesWithoutPrediction ( controllerType , position , rotation , velocity , angularVelocity )
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
Signature
static bool GetLocalControllerStatesWithoutPrediction(OVRInput.Controller controllerType, out Vector3 position, out Quaternion rotation, out Vector3 velocity, out Vector3 angularVelocity)
Parameters
controllerType: OVRInput.Controller
position: out Vector3
rotation: out Quaternion
velocity: out Vector3
angularVelocity: out Vector3
Returns
bool
GetLocalControllerVelocity ( controllerType )
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.
Signature
static Vector3 GetLocalControllerVelocity(OVRInput.Controller controllerType)
Parameters
controllerType: OVRInput.Controller
Returns
Vector3
GetOpenVRStringProperty ( prop , deviceId )
Accesses OpenVR properties about a given deviceID.
Especially useful for differentiating per type of OpenVR device (i.e. Oculus, Vive)
Signature
static string GetOpenVRStringProperty(OVR.OpenVR.ETrackedDeviceProperty prop, uint deviceId=OVR.OpenVR.OpenVR.k_unTrackedDeviceIndex_Hmd)
Parameters
prop: OVR.OpenVR.ETrackedDeviceProperty
deviceId: uint
Returns
string
GetUp ( virtualMask , controllerMask )
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.
Signature
static bool GetUp(Button virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: Button
controllerMask: Controller
Returns
bool
GetUp ( rawMask , controllerMask )
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.
Signature
static bool GetUp(RawButton rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawButton
controllerMask: Controller
Returns
bool
GetUp ( virtualMask , controllerMask )
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.
Signature
static bool GetUp(Touch virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: Touch
controllerMask: Controller
Returns
bool
GetUp ( rawMask , controllerMask )
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.
Signature
static bool GetUp(RawTouch rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawTouch
controllerMask: Controller
Returns
bool
GetUp ( virtualMask , controllerMask )
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.
Signature
static bool GetUp(NearTouch virtualMask, Controller controllerMask=Controller.Active)
Parameters
virtualMask: NearTouch
controllerMask: Controller
Returns
bool
GetUp ( rawMask , controllerMask )
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.
Signature
static bool GetUp(RawNearTouch rawMask, Controller controllerMask=Controller.Active)
Parameters
rawMask: RawNearTouch
controllerMask: Controller
Returns
bool
IsControllerConnected ( controller )
Returns true if the specified controller type is currently connected.
Signature
static bool IsControllerConnected(Controller controller)
Parameters
controller: Controller
Returns
bool
SetControllerHapticsAmplitudeEnvelope ( hapticsVibration , controllerMask )
Signature
static void SetControllerHapticsAmplitudeEnvelope(HapticsAmplitudeEnvelopeVibration hapticsVibration, Controller controllerMask=Controller.Active)
Parameters
hapticsVibration: HapticsAmplitudeEnvelopeVibration
controllerMask: Controller
Returns
void
SetControllerHapticsParametric ( hapticsVibration , controllerMask )
Signature
static void SetControllerHapticsParametric(HapticsParametricVibration hapticsVibration, Controller controllerMask=Controller.Active)
Parameters
hapticsVibration: HapticsParametricVibration
controllerMask: Controller
Returns
void
SetControllerHapticsPcm ( hapticsVibration , controllerMask )
Signature
static int SetControllerHapticsPcm(HapticsPcmVibration hapticsVibration, Controller controllerMask=Controller.Active)
Parameters
hapticsVibration: HapticsPcmVibration
controllerMask: Controller
Returns
int
SetControllerLocalizedVibration ( hapticsLocationMask , frequency , amplitude , controllerMask )
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.
Signature
static void SetControllerLocalizedVibration(HapticsLocation hapticsLocationMask, float frequency, float amplitude, Controller controllerMask=Controller.Active)
Parameters
hapticsLocationMask: HapticsLocation
frequency: float
amplitude: float
controllerMask: Controller
Returns
void
SetControllerVibration ( frequency , amplitude , controllerMask )
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.
Signature
static void SetControllerVibration(float frequency, float amplitude, Controller controllerMask=Controller.Active)
Parameters
frequency: float
amplitude: float
controllerMask: Controller
Returns
void
SetOpenVRLocalPose ( leftPos , rightPos , leftRot , rightRot )
Sets OpenVR left and right controller poses local to tracking space.
Signature
static void SetOpenVRLocalPose(Vector3 leftPos, Vector3 rightPos, Quaternion leftRot, Quaternion rightRot)
Parameters
leftPos: Vector3
rightPos: Vector3
leftRot: Quaternion
rightRot: Quaternion
Returns
void
Update ()
Updates the internal state of OVRInput.
Must be called manually if used independently from OVRManager.
Signature
static void Update()
Returns
void

Inner Classes

OVRControllerBase Class

Provides the base class for instances representing specific types of physical controllers (OVRControllerGamepadPC, OVRControllerTouch, etc.).
The primary purpose of this type is to encapsulate input mappings allowing inputs from various controller types to be interpreted appropriately. Descendant types are thus expected to use their abstract method overrides (such as of ConfigureButtonMap) to initialize input mappings to reasonable defaults for the control scheme being implemented.

Constructors

OVRControllerBase ()
Basic constructor responsible for initializing input mappings.
This is done by invoking the configuration methods (ConfigureButtonMap, ConfigureTouchMap, etc.), which descendant types should use to appropriately initialize the respective input mappings (buttonMap, touchMap, etc.).
Signature
OVRControllerBase()

Fields

axis1DMap : VirtualAxis1DMap
The VirtualAxis1DMap characterizing how physical single-axis inputs should be mapped to RawAxis1D states as appropriate to this control scheme.
This mapping should be initialized during construction by the implementation of ConfigureAxis1DMap.
Signature
VirtualAxis1DMap axis1DMap
axis2DMap : VirtualAxis2DMap
The VirtualAxis2DMap characterizing how physical two-axis inputs should be mapped to RawAxis2D states as appropriate to this control scheme.
This mapping should be initialized during construction by the implementation of ConfigureAxis2DMap.
Signature
VirtualAxis2DMap axis2DMap
buttonMap : VirtualButtonMap
The VirtualButtonMap characterizing how physical button inputs should be mapped to RawButton states as appropriate to this control scheme.
This mapping should be initialized during construction by the implementation of ConfigureButtonMap.
Signature
VirtualButtonMap buttonMap
controllerType : Controller
The controller type (gamepad, Oculus Touch, etc.) of the physical controller represented by this instance.
This value is typically set by a descendant type of OVRControllerBase during construction.
Signature
Controller controllerType
currentState : OVRPlugin.ControllerState6
The current state (as of the most recent Update of the this controller.
This data can be used directly to observe the current state or compared with previousState to determine whether state has changed. The data is updated automatically as part of the instance's Update.
Signature
OVRPlugin.ControllerState6 currentState
nearTouchMap : VirtualNearTouchMap
The VirtualNearTouchMap characterizing how physical proximity inputs should be mapped to RawNearTouch states as appropriate to this control scheme.
This mapping should be initialized during construction by the implementation of ConfigureNearTouchMap.
Signature
VirtualNearTouchMap nearTouchMap
previousState : OVRPlugin.ControllerState6
The previous state (prior to the most recent Update of the this controller.
This data can be used by polling logic to determine whether state has changed. The data is updated automatically as part of the instance's Update.
Signature
OVRPlugin.ControllerState6 previousState
shouldApplyDeadzone : bool
Determines whether a "dead zone" should be applied to suppress small values of one- and two-axis inputs.
It is possible to set this value manually; however, there is internal OVR logic which can set this value on its own under certain circumstances, in which case the manually-set value may be overridden without warning.
Signature
bool shouldApplyDeadzone
touchMap : VirtualTouchMap
The VirtualTouchMap characterizing how physical touch inputs should be mapped to RawTouch states as appropriate to this control scheme.
This mapping should be initialized during construction by the implementation of ConfigureTouchMap.
Signature
VirtualTouchMap touchMap

Methods

ConfigureAxis1DMap ()
Initializes the axis1DMap to appropriate default values for the control scheme encapsulated in this instance.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
abstract void ConfigureAxis1DMap()
Returns
abstract void
ConfigureAxis2DMap ()
Initializes the axis2DMap to appropriate default values for the control scheme encapsulated in this instance.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
abstract void ConfigureAxis2DMap()
Returns
abstract void
ConfigureButtonMap ()
Initializes the buttonMap to appropriate default values for the control scheme encapsulated in this instance.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
abstract void ConfigureButtonMap()
Returns
abstract void
ConfigureNearTouchMap ()
Initializes the nearTouchMap to appropriate default values for the control scheme encapsulated in this instance.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
abstract void ConfigureNearTouchMap()
Returns
abstract void
ConfigureTouchMap ()
Initializes the touchMap to appropriate default values for the control scheme encapsulated in this instance.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
abstract void ConfigureTouchMap()
Returns
abstract void
GetBatteryPercentRemaining ()
DeprecatedRetrieves the current estimated battery power remaining for the current control scheme.
Signature
virtual byte GetBatteryPercentRemaining()
Returns
byte  The estimated battery power remaining as a percentage of the maximum
GetControllerParametricProperties ()
Retrieves the hardware parametric properties of the physical controller represented by this instance.
Signature
virtual HapticsParametricProperties GetControllerParametricProperties()
Returns
HapticsParametricProperties  The haptics parametric properties
GetControllerSampleRateHz ()
Retrieves the hardware sampling rate of the physical controller represented by this instance.
Signature
virtual float GetControllerSampleRateHz()
Returns
float  The sampling rate, in hertz
ResolveToRawMask ( virtualMask )
Wrapper method which invokes the VirtualButtonMap.ToRawMask(Button) method of this instance's buttonMap.
Signature
RawButton ResolveToRawMask(Button virtualMask)
Parameters
virtualMask: Button  The observed inputs to be remapped
Returns
RawButton  A remapping of virtualMask as specified by buttonMap
ResolveToRawMask ( virtualMask )
Wrapper method which invokes the VirtualTouchMap.ToRawMask(Touch) method of this instance's touchMap.
Signature
RawTouch ResolveToRawMask(Touch virtualMask)
Parameters
virtualMask: Touch  The observed inputs to be remapped
Returns
RawTouch  A remapping of virtualMask as specified by touchMap
ResolveToRawMask ( virtualMask )
Wrapper method which invokes the VirtualNearTouchMap.ToRawMask(NearTouch) method of this instance's nearTouchMap.
Signature
RawNearTouch ResolveToRawMask(NearTouch virtualMask)
Parameters
virtualMask: NearTouch  The observed inputs to be remapped
Returns
RawNearTouch  A remapping of virtualMask as specified by nearTouchMap
ResolveToRawMask ( virtualMask )
Wrapper method which invokes the VirtualAxis1DMap.ToRawMask(Axis1D) method of this instance's axis1DMap.
Signature
RawAxis1D ResolveToRawMask(Axis1D virtualMask)
Parameters
virtualMask: Axis1D  The observed inputs to be remapped
Returns
RawAxis1D  A remapping of virtualMask as specified by axis1DMap
ResolveToRawMask ( virtualMask )
Wrapper method which invokes the VirtualAxis2DMap.ToRawMask(Axis2D) method of this instance's axis2DMap.
Signature
RawAxis2D ResolveToRawMask(Axis2D virtualMask)
Parameters
virtualMask: Axis2D  The observed inputs to be remapped
Returns
RawAxis2D  A remapping of virtualMask as specified by axis2DMap
SetControllerHapticsAmplitudeEnvelope ( hapticsVibration )
Sets the HapticsAmplitudeEnvelopeVibration for the physical controller represented by this instance.
Signature
virtual void SetControllerHapticsAmplitudeEnvelope(HapticsAmplitudeEnvelopeVibration hapticsVibration)
Parameters
hapticsVibration: HapticsAmplitudeEnvelopeVibration  The desired haptics amplitude envelope vibration
Returns
void
SetControllerHapticsParametric ( hapticsVibration )
Sets the HapticsParametricVibration for the physical controller represented by this instance.
Signature
virtual void SetControllerHapticsParametric(HapticsParametricVibration hapticsVibration)
Parameters
hapticsVibration: HapticsParametricVibration  The desired parametric vibration to be sent to the system
Returns
void
SetControllerHapticsPcm ( hapticsVibration )
Sets the HapticsPcmVibration for the physical controller represented by this instance.
Signature
virtual int SetControllerHapticsPcm(HapticsPcmVibration hapticsVibration)
Parameters
hapticsVibration: HapticsPcmVibration  The desired PCM vibration to be sent to the system
Returns
int  The number of samples consumed by the resulting native invocation
SetControllerLocalizedVibration ( hapticsLocationMask , frequency , amplitude )
Sets the localized vibration of the physical controller represented by this instance.
Signature
virtual void SetControllerLocalizedVibration(HapticsLocation hapticsLocationMask, float frequency, float amplitude)
Parameters
hapticsLocationMask: HapticsLocation  A mask indicating the locations to which this vibration should apply
frequency: float  The frequency of the desired vibration
amplitude: float  The amplitude of the desired vibration
Returns
void
SetControllerVibration ( frequency , amplitude )
Sets the vibration of the physical controller represented by this instance.
Signature
virtual void SetControllerVibration(float frequency, float amplitude)
Parameters
frequency: float  The frequency of the desired vibration
amplitude: float  The amplitude of the desired vibration
Returns
void
Update ()
Updates this instance by reading inputs from the underlying system, reinterpreting them as specified by the input maps (buttonMap, touchMap, etc.), and updating the information in currentState and previousState.
Signature
virtual Controller Update()
Returns
Controller  An enum bit mask indicating whether a controller of controllerType is currently connected

Inner Classes

VirtualAxis1DMap Class
Characterizes the mapping between RawAxis1D data read from physical inputs and how that data should be intereted as buttons depending on specific control schemes.
OVRControllerBase instances each contain one instance of this type, the mappings within which are overridden by the ConfigureAxis1DMap implementation of the descendant type. The mappings within can also be overwritten after initialization to enable customized input mapping (such as by the user from a settings screen).
Fields
None : RawAxis1D
Specifies the mapping of Axis1D.None, meaning an observed input of Axis1D.None will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D None
PrimaryHandTrigger : RawAxis1D
Specifies the mapping of Axis1D.PrimaryHandTrigger, meaning an observed input of Axis1D.PrimaryHandTrigger will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D PrimaryHandTrigger
PrimaryIndexTrigger : RawAxis1D
Specifies the mapping of Axis1D.PrimaryIndexTrigger, meaning an observed input of Axis1D.PrimaryIndexTrigger will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D PrimaryIndexTrigger
PrimaryIndexTriggerCurl : RawAxis1D
Specifies the mapping of Axis1D.PrimaryIndexTriggerCurl, meaning an observed input of Axis1D.PrimaryIndexTriggerCurl will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D PrimaryIndexTriggerCurl
PrimaryIndexTriggerForce : RawAxis1D
Specifies the mapping of Axis1D.PrimaryIndexTriggerForce, meaning an observed input of Axis1D.PrimaryIndexTriggerForce will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D PrimaryIndexTriggerForce
PrimaryIndexTriggerSlide : RawAxis1D
Specifies the mapping of Axis1D.PrimaryIndexTriggerSlide, meaning an observed input of Axis1D.PrimaryIndexTriggerSlide will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D PrimaryIndexTriggerSlide
PrimaryStylusForce : RawAxis1D
Specifies the mapping of Axis1D.PrimaryStylusForce, meaning an observed input of Axis1D.PrimaryStylusForce will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D PrimaryStylusForce
PrimaryThumbRestForce : RawAxis1D
Specifies the mapping of Axis1D.PrimaryThumbRestForce, meaning an observed input of Axis1D.PrimaryThumbRestForce will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D PrimaryThumbRestForce
SecondaryHandTrigger : RawAxis1D
Specifies the mapping of Axis1D.SecondaryHandTrigger, meaning an observed input of Axis1D.SecondaryHandTrigger will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D SecondaryHandTrigger
SecondaryIndexTrigger : RawAxis1D
Specifies the mapping of Axis1D.SecondaryIndexTrigger, meaning an observed input of Axis1D.SecondaryIndexTrigger will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D SecondaryIndexTrigger
SecondaryIndexTriggerCurl : RawAxis1D
Specifies the mapping of Axis1D.SecondaryIndexTriggerCurl, meaning an observed input of Axis1D.SecondaryIndexTriggerCurl will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D SecondaryIndexTriggerCurl
SecondaryIndexTriggerForce : RawAxis1D
Specifies the mapping of Axis1D.SecondaryIndexTriggerForce, meaning an observed input of Axis1D.SecondaryIndexTriggerForce will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D SecondaryIndexTriggerForce
SecondaryIndexTriggerSlide : RawAxis1D
Specifies the mapping of Axis1D.SecondaryIndexTriggerSlide, meaning an observed input of Axis1D.SecondaryIndexTriggerSlide will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D SecondaryIndexTriggerSlide
SecondaryStylusForce : RawAxis1D
Specifies the mapping of Axis1D.SecondaryStylusForce, meaning an observed input of Axis1D.SecondaryStylusForce will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D SecondaryStylusForce
SecondaryThumbRestForce : RawAxis1D
Specifies the mapping of Axis1D.SecondaryThumbRestForce, meaning an observed input of Axis1D.SecondaryThumbRestForce will be remapped by ToRawMask(Axis1D) to the value assigned here.
Signature
RawAxis1D SecondaryThumbRestForce
Methods
ToRawMask ( virtualMask )
Remaps a Axis1D bit mask to a new RawAxis1D bit mask based on the mappings contained in this instance.
This allows provided input to be "reinterpreted" according to a specificied input mapping for a given control scheme.
Signature
RawAxis1D ToRawMask(Axis1D virtualMask)
Parameters
virtualMask: Axis1D  The original bit mask to be reinterpreted
Returns
RawAxis1D  The new RawAxis1D remapping of virtualMask
VirtualAxis2DMap Class
Characterizes the mapping between RawAxis2D data read from physical inputs and how that data should be intereted as buttons depending on specific control schemes.
OVRControllerBase instances each contain one instance of this type, the mappings within which are overridden by the ConfigureAxis2DMap implementation of the descendant type. The mappings within can also be overwritten after initialization to enable customized input mapping (such as by the user from a settings screen).
Fields
None : RawAxis2D
Specifies the mapping of Axis2D.None, meaning an observed input of Axis2D.None will be remapped by ToRawMask(Axis2D) to the value assigned here.
Signature
RawAxis2D None
PrimaryThumbstick : RawAxis2D
Specifies the mapping of Axis2D.PrimaryThumbstick, meaning an observed input of Axis2D.PrimaryThumbstick will be remapped by ToRawMask(Axis2D) to the value assigned here.
Signature
RawAxis2D PrimaryThumbstick
PrimaryTouchpad : RawAxis2D
Specifies the mapping of Axis2D.PrimaryTouchpad, meaning an observed input of Axis2D.PrimaryTouchpad will be remapped by ToRawMask(Axis2D) to the value assigned here.
Signature
RawAxis2D PrimaryTouchpad
SecondaryThumbstick : RawAxis2D
Specifies the mapping of Axis2D.SecondaryThumbstick, meaning an observed input of Axis2D.SecondaryThumbstick will be remapped by ToRawMask(Axis2D) to the value assigned here.
Signature
RawAxis2D SecondaryThumbstick
SecondaryTouchpad : RawAxis2D
Specifies the mapping of Axis2D.SecondaryTouchpad, meaning an observed input of Axis2D.SecondaryTouchpad will be remapped by ToRawMask(Axis2D) to the value assigned here.
Signature
RawAxis2D SecondaryTouchpad
Methods
ToRawMask ( virtualMask )
Remaps a Axis2D bit mask to a new RawAxis2D bit mask based on the mappings contained in this instance.
This allows provided input to be "reinterpreted" according to a specificied input mapping for a given control scheme.
Signature
RawAxis2D ToRawMask(Axis2D virtualMask)
Parameters
virtualMask: Axis2D  The original bit mask to be reinterpreted
Returns
RawAxis2D  The new RawAxis2D remapping of virtualMask
VirtualButtonMap Class
Characterizes the mapping between RawButton data read from physical inputs and how that data should be intereted as buttons depending on specific control schemes.
OVRControllerBase instances each contain one instance of this type, the mappings within which are overridden by the ConfigureButtonMap implementation of the descendant type. The mappings within can also be overwritten after initialization to enable customized input mapping (such as by the user from a settings screen).
Fields
Back : RawButton
Specifies the mapping of Button.Back, meaning an observed input of Button.Back will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton Back
Down : RawButton
Specifies the mapping of Button.Down, meaning an observed input of Button.Down will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton Down
DpadDown : RawButton
Specifies the mapping of Button.DpadDown, meaning an observed input of Button.DpadDown will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton DpadDown
DpadLeft : RawButton
Specifies the mapping of Button.DpadLeft, meaning an observed input of Button.DpadLeft will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton DpadLeft
DpadRight : RawButton
Specifies the mapping of Button.DpadRight, meaning an observed input of Button.DpadRight will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton DpadRight
DpadUp : RawButton
Specifies the mapping of Button.DpadUp, meaning an observed input of Button.DpadUp will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton DpadUp
Four : RawButton
Specifies the mapping of Button.Four, meaning an observed input of Button.Four will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton Four
Left : RawButton
Specifies the mapping of Button.Left, meaning an observed input of Button.Left will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton Left
None : RawButton
Specifies the mapping of Button.None, meaning an observed input of Button.None will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton None
One : RawButton
Specifies the mapping of Button.One, meaning an observed input of Button.One will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton One
PrimaryHandTrigger : RawButton
Specifies the mapping of Button.PrimaryHandTrigger, meaning an observed input of Button.PrimaryHandTrigger will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton PrimaryHandTrigger
PrimaryIndexTrigger : RawButton
Specifies the mapping of Button.PrimaryIndexTrigger, meaning an observed input of Button.PrimaryIndexTrigger will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton PrimaryIndexTrigger
PrimaryShoulder : RawButton
Specifies the mapping of Button.PrimaryShoulder, meaning an observed input of Button.PrimaryShoulder will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton PrimaryShoulder
PrimaryThumbstick : RawButton
Specifies the mapping of Button.PrimaryThumbstick, meaning an observed input of Button.PrimaryThumbstick will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton PrimaryThumbstick
PrimaryThumbstickDown : RawButton
Specifies the mapping of Button.PrimaryThumbstickDown, meaning an observed input of Button.PrimaryThumbstickDown will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton PrimaryThumbstickDown
PrimaryThumbstickLeft : RawButton
Specifies the mapping of Button.PrimaryThumbstickLeft, meaning an observed input of Button.PrimaryThumbstickLeft will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton PrimaryThumbstickLeft
PrimaryThumbstickRight : RawButton
Specifies the mapping of Button.PrimaryThumbstickRight, meaning an observed input of Button.PrimaryThumbstickRight will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton PrimaryThumbstickRight
PrimaryThumbstickUp : RawButton
Specifies the mapping of Button.PrimaryThumbstickUp, meaning an observed input of Button.PrimaryThumbstickUp will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton PrimaryThumbstickUp
PrimaryTouchpad : RawButton
Specifies the mapping of Button.PrimaryTouchpad, meaning an observed input of Button.PrimaryTouchpad will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton PrimaryTouchpad
Right : RawButton
Specifies the mapping of Button.Right, meaning an observed input of Button.Right will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton Right
SecondaryHandTrigger : RawButton
Specifies the mapping of Button.SecondaryHandTrigger, meaning an observed input of Button.SecondaryHandTrigger will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton SecondaryHandTrigger
SecondaryIndexTrigger : RawButton
Specifies the mapping of Button.SecondaryIndexTrigger, meaning an observed input of Button.SecondaryIndexTrigger will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton SecondaryIndexTrigger
SecondaryShoulder : RawButton
Specifies the mapping of Button.SecondaryShoulder, meaning an observed input of Button.SecondaryShoulder will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton SecondaryShoulder
SecondaryThumbstick : RawButton
Specifies the mapping of Button.SecondaryThumbstick, meaning an observed input of Button.SecondaryThumbstick will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton SecondaryThumbstick
SecondaryThumbstickDown : RawButton
Specifies the mapping of Button.SecondaryThumbstickDown, meaning an observed input of Button.SecondaryThumbstickDown will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton SecondaryThumbstickDown
SecondaryThumbstickLeft : RawButton
Specifies the mapping of Button.SecondaryThumbstickLeft, meaning an observed input of Button.SecondaryThumbstickLeft will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton SecondaryThumbstickLeft
SecondaryThumbstickRight : RawButton
Specifies the mapping of Button.SecondaryThumbstickRight, meaning an observed input of Button.SecondaryThumbstickRight will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton SecondaryThumbstickRight
SecondaryThumbstickUp : RawButton
Specifies the mapping of Button.SecondaryThumbstickUp, meaning an observed input of Button.SecondaryThumbstickUp will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton SecondaryThumbstickUp
SecondaryTouchpad : RawButton
Specifies the mapping of Button.SecondaryTouchpad, meaning an observed input of Button.SecondaryTouchpad will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton SecondaryTouchpad
Start : RawButton
Specifies the mapping of Button.Start, meaning an observed input of Button.Start will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton Start
Three : RawButton
Specifies the mapping of Button.Three, meaning an observed input of Button.Three will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton Three
Two : RawButton
Specifies the mapping of Button.Two, meaning an observed input of Button.Two will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton Two
Specifies the mapping of Button.Up, meaning an observed input of Button.Up will be remapped by ToRawMask(Button) to the value assigned here.
Signature
RawButton Up
Methods
ToRawMask ( virtualMask )
Remaps a Button bit mask to a new RawButton bit mask based on the mappings contained in this instance.
This allows provided input to be "reinterpreted" according to a specificied input mapping for a given control scheme.
Signature
RawButton ToRawMask(Button virtualMask)
Parameters
virtualMask: Button  The original bit mask to be reinterpreted
Returns
RawButton  The new RawButton remapping of virtualMask
VirtualNearTouchMap Class
Characterizes the mapping between RawNearTouch data read from physical inputs and how that data should be intereted as buttons depending on specific control schemes.
OVRControllerBase instances each contain one instance of this type, the mappings within which are overridden by the ConfigureNearTouchMap implementation of the descendant type. The mappings within can also be overwritten after initialization to enable customized input mapping (such as by the user from a settings screen).
Fields
Specifies the mapping of NearTouch.None, meaning an observed input of NearTouch.None will be remapped by ToRawMask(NearTouch) to the value assigned here.
Signature
RawNearTouch None
PrimaryIndexTrigger : RawNearTouch
Specifies the mapping of NearTouch.PrimaryIndexTrigger, meaning an observed input of NearTouch.PrimaryIndexTrigger will be remapped by ToRawMask(NearTouch) to the value assigned here.
Signature
RawNearTouch PrimaryIndexTrigger
PrimaryThumbButtons : RawNearTouch
Specifies the mapping of NearTouch.PrimaryThumbButtons, meaning an observed input of NearTouch.PrimaryThumbButtons will be remapped by ToRawMask(NearTouch) to the value assigned here.
Signature
RawNearTouch PrimaryThumbButtons
SecondaryIndexTrigger : RawNearTouch
Specifies the mapping of NearTouch.SecondaryIndexTrigger, meaning an observed input of NearTouch.SecondaryIndexTrigger will be remapped by ToRawMask(NearTouch) to the value assigned here.
Signature
RawNearTouch SecondaryIndexTrigger
SecondaryThumbButtons : RawNearTouch
Specifies the mapping of NearTouch.SecondaryThumbButtons, meaning an observed input of NearTouch.SecondaryThumbButtons will be remapped by ToRawMask(NearTouch) to the value assigned here.
Signature
RawNearTouch SecondaryThumbButtons
Methods
ToRawMask ( virtualMask )
Remaps a NearTouch bit mask to a new RawNearTouch bit mask based on the mappings contained in this instance.
This allows provided input to be "reinterpreted" according to a specificied input mapping for a given control scheme.
Signature
RawNearTouch ToRawMask(NearTouch virtualMask)
Parameters
virtualMask: NearTouch  The original bit mask to be reinterpreted
Returns
RawNearTouch  The new RawNearTouch remapping of virtualMask
VirtualTouchMap Class
Characterizes the mapping between RawTouch data read from physical inputs and how that data should be intereted as touches depending on specific control schemes.
OVRControllerBase instances each contain one instance of this type, the mappings within which are overridden by the ConfigureTouchMap implementation of the descendant type. The mappings within can also be overwritten after initialization to enable customized input mapping (such as by the user from a settings screen).
Fields
Four : RawTouch
Specifies the mapping of Touch.Four, meaning an observed input of Touch.Four will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch Four
None : RawTouch
Specifies the mapping of Touch.None, meaning an observed input of Touch.None will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch None
One : RawTouch
Specifies the mapping of Touch.One, meaning an observed input of Touch.One will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch One
PrimaryIndexTrigger : RawTouch
Specifies the mapping of Touch.PrimaryIndexTrigger, meaning an observed input of Touch.PrimaryIndexTrigger will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch PrimaryIndexTrigger
PrimaryThumbRest : RawTouch
Specifies the mapping of Touch.PrimaryThumbRest, meaning an observed input of Touch.PrimaryThumbRest will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch PrimaryThumbRest
PrimaryThumbstick : RawTouch
Specifies the mapping of Touch.PrimaryThumbstick, meaning an observed input of Touch.PrimaryThumbstick will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch PrimaryThumbstick
PrimaryTouchpad : RawTouch
Specifies the mapping of Touch.PrimaryTouchpad, meaning an observed input of Touch.PrimaryTouchpad will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch PrimaryTouchpad
SecondaryIndexTrigger : RawTouch
Specifies the mapping of Touch.SecondaryIndexTrigger, meaning an observed input of Touch.SecondaryIndexTrigger will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch SecondaryIndexTrigger
SecondaryThumbRest : RawTouch
Specifies the mapping of Touch.SecondaryThumbRest, meaning an observed input of Touch.SecondaryThumbRest will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch SecondaryThumbRest
SecondaryThumbstick : RawTouch
Specifies the mapping of Touch.SecondaryThumbstick, meaning an observed input of Touch.SecondaryThumbstick will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch SecondaryThumbstick
SecondaryTouchpad : RawTouch
Specifies the mapping of Touch.SecondaryTouchpad, meaning an observed input of Touch.SecondaryTouchpad will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch SecondaryTouchpad
Three : RawTouch
Specifies the mapping of Touch.Three, meaning an observed input of Touch.Three will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch Three
Two : RawTouch
Specifies the mapping of Touch.Two, meaning an observed input of Touch.Two will be remapped by ToRawMask(Touch) to the value assigned here.
Signature
RawTouch Two
Methods
ToRawMask ( virtualMask )
Remaps a Touch bit mask to a new RawTouch bit mask based on the mappings contained in this instance.
This allows provided input to be "reinterpreted" according to a specificied input mapping for a given control scheme.
Signature
RawTouch ToRawMask(Touch virtualMask)
Parameters
virtualMask: Touch  The original bit mask to be reinterpreted
Returns
RawTouch  The new RawTouch remapping of virtualMask

OVRControllerGamepadPC Class

Extends OVRInput.OVRControllerBase
Specializes OVRControllerBase specifically for PC-based gamepad controls.
Overrides the configuration methods of the base type to populate the various input maps (OVRControllerBase.buttonMap, OVRControllerBase.touchMap, etc.) with the appropriate RawButton mappings for this control sceme. These mappings can be modified after construction to customize controls.

Constructors

OVRControllerGamepadPC ()
Basic constructor.
Initializes OVRControllerBase.controllerType to Controller.Gamepad, otherwise initializes all other OVRControllerBase values to their defaults.
Note that, because the OVRControllerBase constructor invokes all the virtual configuration methods (ConfigureButtonMap, ConfigureTouchMap, etc.), the default values to which the various input maps will be initialized are the defaults for this type, not the base type.
Signature
OVRControllerGamepadPC()

Methods

ConfigureAxis1DMap ()
Configures the OVRControllerBase.axis1DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis1DMap()
Returns
override void
ConfigureAxis2DMap ()
Configures the OVRControllerBase.axis2DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis2DMap()
Returns
override void
ConfigureButtonMap ()
Configures the OVRControllerBase.buttonMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureButtonMap()
Returns
override void
ConfigureNearTouchMap ()
Configures the OVRControllerBase.nearTouchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureNearTouchMap()
Returns
override void
ConfigureTouchMap ()
Configures the OVRControllerBase.touchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureTouchMap()
Returns
override void

OVRControllerHands Class

Extends OVRInput.OVRControllerBase
Specializes OVRControllerBase specifically for hands provided by hand tracking.
Overrides the configuration methods of the base type to populate the various input maps (OVRControllerBase.buttonMap, OVRControllerBase.touchMap, etc.) with the appropriate RawButton mappings for this control sceme. These mappings can be modified after construction to customize controls.

Constructors

OVRControllerHands ()
Basic constructor.
Initializes OVRControllerBase.controllerType to Controller.Hands, otherwise initializes all other OVRControllerBase values to their defaults.
Note that, because the OVRControllerBase constructor invokes all the virtual configuration methods (ConfigureButtonMap, ConfigureTouchMap, etc.), the default values to which the various input maps will be initialized are the defaults for this type, not the base type.
Signature
OVRControllerHands()

Methods

ConfigureAxis1DMap ()
Configures the OVRControllerBase.axis1DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis1DMap()
Returns
override void
ConfigureAxis2DMap ()
Configures the OVRControllerBase.axis2DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis2DMap()
Returns
override void
ConfigureButtonMap ()
Configures the OVRControllerBase.buttonMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureButtonMap()
Returns
override void
ConfigureNearTouchMap ()
Configures the OVRControllerBase.nearTouchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureNearTouchMap()
Returns
override void
ConfigureTouchMap ()
Configures the OVRControllerBase.touchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureTouchMap()
Returns
override void
GetBatteryPercentRemaining ()
DeprecatedRetrieves the current estimated battery power remaining for the current control scheme.
Signature
override byte GetBatteryPercentRemaining()
Returns
override byte  The estimated battery power remaining as a percentage of the maximum

OVRControllerLHand Class

Extends OVRInput.OVRControllerBase
Specializes OVRControllerBase specifically for left hands provided by hand tracking.
Overrides the configuration methods of the base type to populate the various input maps (OVRControllerBase.buttonMap, OVRControllerBase.touchMap, etc.) with the appropriate RawButton mappings for this control sceme. These mappings can be modified after construction to customize controls.

Constructors

OVRControllerLHand ()
Basic constructor.
Initializes OVRControllerBase.controllerType to Controller.LHand, otherwise initializes all other OVRControllerBase values to their defaults.
Note that, because the OVRControllerBase constructor invokes all the virtual configuration methods (ConfigureButtonMap, ConfigureTouchMap, etc.), the default values to which the various input maps will be initialized are the defaults for this type, not the base type.
Signature
OVRControllerLHand()

Methods

ConfigureAxis1DMap ()
Configures the OVRControllerBase.axis1DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis1DMap()
Returns
override void
ConfigureAxis2DMap ()
Configures the OVRControllerBase.axis2DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis2DMap()
Returns
override void
ConfigureButtonMap ()
Configures the OVRControllerBase.buttonMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureButtonMap()
Returns
override void
ConfigureNearTouchMap ()
Configures the OVRControllerBase.nearTouchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureNearTouchMap()
Returns
override void
ConfigureTouchMap ()
Configures the OVRControllerBase.touchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureTouchMap()
Returns
override void
GetBatteryPercentRemaining ()
DeprecatedRetrieves the current estimated battery power remaining for the current control scheme.
Signature
override byte GetBatteryPercentRemaining()
Returns
override byte  The estimated battery power remaining as a percentage of the maximum

OVRControllerLTouch Class

Extends OVRInput.OVRControllerBase
Specializes OVRControllerBase specifically for left-hand touch controllers.
Overrides the configuration methods of the base type to populate the various input maps (OVRControllerBase.buttonMap, OVRControllerBase.touchMap, etc.) with the appropriate RawButton mappings for this control sceme. These mappings can be modified after construction to customize controls.

Constructors

OVRControllerLTouch ()
Basic constructor.
Initializes OVRControllerBase.controllerType to Controller.LTouch, otherwise initializes all other OVRControllerBase values to their defaults.
Note that, because the OVRControllerBase constructor invokes all the virtual configuration methods (ConfigureButtonMap, ConfigureTouchMap, etc.), the default values to which the various input maps will be initialized are the defaults for this type, not the base type.
Signature
OVRControllerLTouch()

Methods

ConfigureAxis1DMap ()
Configures the OVRControllerBase.axis1DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis1DMap()
Returns
override void
ConfigureAxis2DMap ()
Configures the OVRControllerBase.axis2DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis2DMap()
Returns
override void
ConfigureButtonMap ()
Configures the OVRControllerBase.buttonMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureButtonMap()
Returns
override void
ConfigureNearTouchMap ()
Configures the OVRControllerBase.nearTouchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureNearTouchMap()
Returns
override void
ConfigureTouchMap ()
Configures the OVRControllerBase.touchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureTouchMap()
Returns
override void
GetBatteryPercentRemaining ()
DeprecatedRetrieves the current estimated battery power remaining for the current control scheme.
Signature
override byte GetBatteryPercentRemaining()
Returns
override byte  The estimated battery power remaining as a percentage of the maximum

OVRControllerRemote Class

Extends OVRInput.OVRControllerBase
Specializes OVRControllerBase specifically for remote (such as Oculus Go) controls.
Overrides the configuration methods of the base type to populate the various input maps (OVRControllerBase.buttonMap, OVRControllerBase.touchMap, etc.) with the appropriate RawButton mappings for this control sceme. These mappings can be modified after construction to customize controls.

Constructors

OVRControllerRemote ()
Basic constructor.
Initializes OVRControllerBase.controllerType to Controller.Remote, otherwise initializes all other OVRControllerBase values to their defaults.
Note that, because the OVRControllerBase constructor invokes all the virtual configuration methods (ConfigureButtonMap, ConfigureTouchMap, etc.), the default values to which the various input maps will be initialized are the defaults for this type, not the base type.
Signature
OVRControllerRemote()

Methods

ConfigureAxis1DMap ()
Configures the OVRControllerBase.axis1DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis1DMap()
Returns
override void
ConfigureAxis2DMap ()
Configures the OVRControllerBase.axis2DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis2DMap()
Returns
override void
ConfigureButtonMap ()
Configures the OVRControllerBase.buttonMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureButtonMap()
Returns
override void
ConfigureNearTouchMap ()
Configures the OVRControllerBase.nearTouchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureNearTouchMap()
Returns
override void
ConfigureTouchMap ()
Configures the OVRControllerBase.touchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureTouchMap()
Returns
override void

OVRControllerRHand Class

Extends OVRInput.OVRControllerBase
Specializes OVRControllerBase specifically for right-hand controllers.
Overrides the configuration methods of the base type to populate the various input maps (OVRControllerBase.buttonMap, OVRControllerBase.touchMap, etc.) with the appropriate RawButton mappings for this control sceme. These mappings can be modified after construction to customize controls.

Constructors

OVRControllerRHand ()
Basic constructor.
Initializes OVRControllerBase.controllerType to Controller.RHand, otherwise initializes all other OVRControllerBase values to their defaults.
Note that, because the OVRControllerBase constructor invokes all the virtual configuration methods (ConfigureButtonMap, ConfigureTouchMap, etc.), the default values to which the various input maps will be initialized are the defaults for this type, not the base type.
Signature
OVRControllerRHand()

Methods

ConfigureAxis1DMap ()
Configures the OVRControllerBase.axis1DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis1DMap()
Returns
override void
ConfigureAxis2DMap ()
Configures the OVRControllerBase.axis2DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis2DMap()
Returns
override void
ConfigureButtonMap ()
Configures the OVRControllerBase.buttonMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureButtonMap()
Returns
override void
ConfigureNearTouchMap ()
Configures the OVRControllerBase.nearTouchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureNearTouchMap()
Returns
override void
ConfigureTouchMap ()
Configures the OVRControllerBase.touchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureTouchMap()
Returns
override void
GetBatteryPercentRemaining ()
DeprecatedRetrieves the current estimated battery power remaining for the current control scheme.
Signature
override byte GetBatteryPercentRemaining()
Returns
override byte  The estimated battery power remaining as a percentage of the maximum

OVRControllerTouch Class

Extends OVRInput.OVRControllerBase
Specializes OVRControllerBase specifically for a pair of touch controllers.
Overrides the configuration methods of the base type to populate the various input maps (OVRControllerBase.buttonMap, OVRControllerBase.touchMap, etc.) with the appropriate RawButton mappings for this control sceme. These mappings can be modified after construction to customize controls.

Constructors

OVRControllerTouch ()
Basic constructor.
Initializes OVRControllerBase.controllerType to Controller.Touch, otherwise initializes all other OVRControllerBase values to their defaults.
Note that, because the OVRControllerBase constructor invokes all the virtual configuration methods (ConfigureButtonMap, ConfigureTouchMap, etc.), the default values to which the various input maps will be initialized are the defaults for this type, not the base type.
Signature
OVRControllerTouch()

Methods

ConfigureAxis1DMap ()
Configures the OVRControllerBase.axis1DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis1DMap()
Returns
override void
ConfigureAxis2DMap ()
Configures the OVRControllerBase.axis2DMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureAxis2DMap()
Returns
override void
ConfigureButtonMap ()
Configures the OVRControllerBase.buttonMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureButtonMap()
Returns
override void
ConfigureNearTouchMap ()
Configures the OVRControllerBase.nearTouchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureNearTouchMap()
Returns
override void
ConfigureTouchMap ()
Configures the OVRControllerBase.touchMap to contain the appropriate default mappings for this control scheme.
This method is invoked automatically during initialization and need not be separately invoked except to restore the defaults from a modified state.
Signature
override void ConfigureTouchMap()
Returns
override void
GetBatteryPercentRemaining ()
DeprecatedRetrieves the current estimated battery power remaining for the current control scheme.
Signature
override byte GetBatteryPercentRemaining()
Returns
override byte  The estimated battery power remaining as a percentage of the maximum

Inner Structs

HapticsAmplitudeEnvelopeVibration Struct

Fields

Duration : float
Signature
float Duration
Samples : float[]
Signature
float [] Samples
SamplesCount : int
Signature
int SamplesCount

HapticsParametricPoint Struct

This structure describes an amplitude of frequency point.

Fields

Time : Int64
Time of the amplitude or frequency point, as a duration in nanoseconds since the start of the haptic event.
Signature
Int64 Time
Value : float
Normalized value of the vibration amplitude or frequency at this point in time, with a value between 0.0 and 1.0 (inclusive).
Signature
float Value

HapticsParametricProperties Struct

This structure contains device-specific properties about streaming timing and supported frequency range.

Fields

IdealFrameSubmissionRate : Int64
Ideal rate the application should submit haptic frames with, in nanoseconds, for applications that generate haptic data on the fly.
Signature
Int64 IdealFrameSubmissionRate
MaxFrequencyHz : float
Maximum frequency, in Hertz, supported by the device.
Signature
float MaxFrequencyHz
MinFrequencyHz : float
Minimum frequency, in Hertz, supported by the device.
Signature
float MinFrequencyHz
MinimumFirstFrameDuration : Int64
Minimum amount of haptic data, in nanoseconds, the application should submit in the first haptic frame.
Signature
Int64 MinimumFirstFrameDuration

HapticsParametricTransient Struct

This structure describes a transient, which is a brief and abrupt change of amplitude and frequency.

Fields

Amplitude : float
Normalized amplitude of the transient, with a value between 0.0 and 1.0 (inclusive).
Signature
float Amplitude
Frequency : float
Normalized frequency of the transient, with a value between 0.0 and 1.0 (inclusive).
Signature
float Frequency
Time : Int64
Time of the transient, as a duration in nanoseconds since the start of the haptic event.
Signature
Int64 Time

HapticsParametricVibration Struct

This structure describes a parametric haptic event with a series of amplitude points,.

Fields

AmplitudePoints : HapticsParametricPoint[]
Signature
HapticsParametricPoint [] AmplitudePoints
FrequencyPoints : HapticsParametricPoint[]
Signature
HapticsParametricPoint [] FrequencyPoints
MaxFrequencyHz : float
Absolute frequency, in Hertz, that the normalized frequency.
Signature
float MaxFrequencyHz
MinFrequencyHz : float
Absolute frequency, in Hertz, that the normalized frequency.
Signature
float MinFrequencyHz
Describes if and how the haptic data in this structure is part of a longer haptic stream.
Signature
HapticsParametricStreamFrameType StreamFrameType
Transients : HapticsParametricTransient[]
Signature
HapticsParametricTransient [] Transients

HapticsPcmVibration Struct

Fields

Append : bool
Signature
bool Append
SampleRateHz : float
Signature
float SampleRateHz
Samples : float[]
Signature
float [] Samples
SamplesCount : int
Signature
int SamplesCount

OpenVRControllerDetails Struct

Struct characterizing the current state of an OpenVRController.
This struct is used to communicate with the OpenVR platform API and should not be used by developers.
In general, OpenXR should be preferred over OpenVR for new development.

Fields

controllerType : OpenVRController
The type (Oculus Touch, Vive, etc.) of the hardware controller described by this struct.
In general, OpenXR should be preferred over OpenVR for new development.
Signature
OpenVRController controllerType
deviceID : uint
The unique identifier associated with the hardware controller described by this struct.
In general, OpenXR should be preferred over OpenVR for new development.
Signature
uint deviceID
localOrientation : Quaternion
The tracking-space orientation of the hardware controller described by this struct.
In general, OpenXR should be preferred over OpenVR for new development.
Signature
Quaternion localOrientation
localPosition : Vector3
The tracking-space position of the hardware controller described by this struct.
In general, OpenXR should be preferred over OpenVR for new development.
Signature
Vector3 localPosition
state : OVR.OpenVR.VRControllerState_t
The current OVR.OpenVR.VRControllerState_t of the hardware controller described by this struct.
In general, OpenXR should be preferred over OpenVR for new development.
Signature
OVR.OpenVR.VRControllerState_t state

Inner Enums

Button Enum

Virtual button mappings that allow the same input bindings to work across different controllers.

Enumeration Constants

MemberValueDescription
None
0
Maps to RawButton: [Gamepad, Touch, LTouch, RTouch, Remote: None].
One
0x00000001
Maps to RawButton: [Gamepad, Touch, RTouch: A], [LTouch: X], [Remote: Start].
Two
0x00000002
Maps to RawButton: [Gamepad, Touch, RTouch: B], [LTouch: Y], [Remote: Back].
Three
0x00000004
Maps to RawButton: [Gamepad, Touch: X], [LTouch, RTouch, Remote: None].
Four
0x00000008
Maps to RawButton: [Gamepad, Touch: Y], [LTouch, RTouch, Remote: None].
Start
0x00000100
Maps to RawButton: [Gamepad: Start], [Touch, LTouch, Remote: Start], [RTouch: None].
Back
0x00000200
Maps to RawButton: [Gamepad, Remote: Back], [Touch, LTouch, RTouch: None].
PrimaryShoulder
0x00001000
Maps to RawButton: [Gamepad: LShoulder], [Touch, LTouch, RTouch, Remote: None].
PrimaryIndexTrigger
0x00002000
Maps to RawButton: [Gamepad, Touch, LTouch: LIndexTrigger], [RTouch: RIndexTrigger], [Remote: None].
PrimaryHandTrigger
0x00004000
Maps to RawButton: [Touch, LTouch: LHandTrigger], [RTouch: RHandTrigger], [Gamepad, Remote: None].
PrimaryThumbstick
0x00008000
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstick], [RTouch: RThumbstick], [Remote: None].
PrimaryThumbstickUp
0x00010000
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickUp], [RTouch: RThumbstickUp], [Remote: None].
PrimaryThumbstickDown
0x00020000
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickDown], [RTouch: RThumbstickDown], [Remote: None].
PrimaryThumbstickLeft
0x00040000
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickLeft], [RTouch: RThumbstickLeft], [Remote: None].
PrimaryThumbstickRight
0x00080000
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickRight], [RTouch: RThumbstickRight], [Remote: None].
PrimaryTouchpad
0x00000400
Maps to RawButton: [Gamepad, Touch, LTouch, RTouch, Remote: None].
SecondaryShoulder
0x00100000
Maps to RawButton: [Gamepad: RShoulder], [Touch, LTouch, RTouch, Remote: None].
SecondaryIndexTrigger
0x00200000
Maps to RawButton: [Gamepad, Touch: RIndexTrigger], [LTouch, RTouch, Remote: None].
SecondaryHandTrigger
0x00400000
Maps to RawButton: [Touch: RHandTrigger], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryThumbstick
0x00800000
Maps to RawButton: [Gamepad, Touch: RThumbstick], [LTouch, RTouch, Remote: None].
SecondaryThumbstickUp
0x01000000
Maps to RawButton: [Gamepad, Touch: RThumbstickUp], [LTouch, RTouch, Remote: None].
SecondaryThumbstickDown
0x02000000
Maps to RawButton: [Gamepad, Touch: RThumbstickDown], [LTouch, RTouch, Remote: None].
SecondaryThumbstickLeft
0x04000000
Maps to RawButton: [Gamepad, Touch: RThumbstickLeft], [LTouch, RTouch, Remote: None].
SecondaryThumbstickRight
0x08000000
Maps to RawButton: [Gamepad, Touch: RThumbstickRight], [LTouch, RTouch, Remote: None].
SecondaryTouchpad
0x00000800
Maps to RawButton: [Gamepad, Touch, LTouch, RTouch, Remote: None].
DpadUp
0x00000010
Maps to RawButton: [Gamepad, Remote: DpadUp], [Touch, LTouch, RTouch: None].
DpadDown
0x00000020
Maps to RawButton: [Gamepad, Remote: DpadDown], [Touch, LTouch, RTouch: None].
DpadLeft
0x00000040
Maps to RawButton: [Gamepad, Remote: DpadLeft], [Touch, LTouch, RTouch: None].
DpadRight
0x00000080
Maps to RawButton: [Gamepad, Remote: DpadRight], [Touch, LTouch, RTouch: None].
Up
0x10000000
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickUp], [RTouch: RThumbstickUp], [Remote: DpadUp].
Down
0x20000000
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickDown], [RTouch: RThumbstickDown], [Remote: DpadDown].
Left
0x40000000
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickLeft], [RTouch: RThumbstickLeft], [Remote: DpadLeft].
Right
unchecked((int)0x80000000)
Maps to RawButton: [Gamepad, Touch, LTouch: LThumbstickRight], [RTouch: RThumbstickRight], [Remote: DpadRight].
Any
~None
Maps to RawButton: [Gamepad, Touch, LTouch, RTouch: Any].

RawButton Enum

Raw button mappings that can be used to directly query the state of a controller.

Enumeration Constants

MemberValueDescription
None
0
Maps to Physical Button: [Gamepad, Touch, LTouch, RTouch, Remote: None].
A
0x00000001
Maps to Physical Button: [Gamepad, Touch, RTouch: A], [LTouch, Remote: None].
B
0x00000002
Maps to Physical Button: [Gamepad, Touch, RTouch: B], [LTouch, Remote: None].
X
0x00000100
Maps to Physical Button: [Gamepad, Touch, LTouch: X], [RTouch, Remote: None].
Y
0x00000200
Maps to Physical Button: [Gamepad, Touch, LTouch: Y], [RTouch, Remote: None].
Start
0x00100000
Maps to Physical Button: [Gamepad, Touch, LTouch, Remote: Start], [RTouch: None].
Back
0x00200000
Maps to Physical Button: [Gamepad, Remote: Back], [Touch, LTouch, RTouch: None].
LShoulder
0x00000800
Maps to Physical Button: [Gamepad: LShoulder], [Touch, LTouch, RTouch, Remote: None].
LIndexTrigger
0x10000000
Maps to Physical Button: [Gamepad, Touch, LTouch: LIndexTrigger], [RTouch, Remote: None].
LHandTrigger
0x20000000
Maps to Physical Button: [Touch, LTouch: LHandTrigger], [Gamepad, RTouch, Remote: None].
LThumbstick
0x00000400
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstick], [RTouch, Remote: None].
LThumbstickUp
0x00000010
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstickUp], [RTouch, Remote: None].
LThumbstickDown
0x00000020
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstickDown], [RTouch, Remote: None].
LThumbstickLeft
0x00000040
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstickLeft], [RTouch, Remote: None].
LThumbstickRight
0x00000080
Maps to Physical Button: [Gamepad, Touch, LTouch: LThumbstickRight], [RTouch, Remote: None].
LTouchpad
0x40000000
Maps to Physical Button: [Gamepad, Touch, LTouch, RTouch, Remote: None].
RShoulder
0x00000008
Maps to Physical Button: [Gamepad: RShoulder], [Touch, LTouch, RTouch, Remote: None].
RIndexTrigger
0x04000000
Maps to Physical Button: [Gamepad, Touch, RTouch: RIndexTrigger], [LTouch, Remote: None].
RHandTrigger
0x08000000
Maps to Physical Button: [Touch, RTouch: RHandTrigger], [Gamepad, LTouch, Remote: None].
RThumbstick
0x00000004
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstick], [LTouch, Remote: None].
RThumbstickUp
0x00001000
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstickUp], [LTouch, Remote: None].
RThumbstickDown
0x00002000
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstickDown], [LTouch, Remote: None].
RThumbstickLeft
0x00004000
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstickLeft], [LTouch, Remote: None].
RThumbstickRight
0x00008000
Maps to Physical Button: [Gamepad, Touch, RTouch: RThumbstickRight], [LTouch, Remote: None].
RTouchpad
unchecked((int)0x80000000)
Maps to Physical Button: [Gamepad, Touch, LTouch, RTouch, Remote: None].
DpadUp
0x00010000
Maps to Physical Button: [Gamepad, Remote: DpadUp], [Touch, LTouch, RTouch: None].
DpadDown
0x00020000
Maps to Physical Button: [Gamepad, Remote: DpadDown], [Touch, LTouch, RTouch: None].
DpadLeft
0x00040000
Maps to Physical Button: [Gamepad, Remote: DpadLeft], [Touch, LTouch, RTouch: None].
DpadRight
0x00080000
Maps to Physical Button: [Gamepad, Remote: DpadRight], [Touch, LTouch, RTouch: None].
Any
~None
Maps to Physical Button: [Gamepad, Touch, LTouch, RTouch, Remote: Any].

Touch Enum

Virtual capacitive touch mappings that allow the same input bindings to work across different controllers with capacitive touch support.

Enumeration Constants

MemberValueDescription
None
0
Maps to RawTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
One
Button.One
Maps to RawTouch: [Touch, RTouch: A], [LTouch: X], [Gamepad, Remote: None].
Two
Button.Two
Maps to RawTouch: [Touch, RTouch: B], [LTouch: Y], [Gamepad, Remote: None].
Three
Button.Three
Maps to RawTouch: [Touch: X], [Gamepad, LTouch, RTouch, Remote: None].
Four
Button.Four
Maps to RawTouch: [Touch: Y], [Gamepad, LTouch, RTouch, Remote: None].
PrimaryIndexTrigger
Button.PrimaryIndexTrigger
Maps to RawTouch: [Touch, LTouch: LIndexTrigger], [RTouch: RIndexTrigger], [Gamepad, Remote: None].
PrimaryThumbstick
Button.PrimaryThumbstick
Maps to RawTouch: [Touch, LTouch: LThumbstick], [RTouch: RThumbstick], [Gamepad, Remote: None].
PrimaryThumbRest
0x00001000
Maps to RawTouch: [Touch, LTouch: LThumbRest], [RTouch: RThumbRest], [Gamepad, Remote: None].
PrimaryTouchpad
Button.PrimaryTouchpad
Maps to RawTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
SecondaryIndexTrigger
Button.SecondaryIndexTrigger
Maps to RawTouch: [Touch: RIndexTrigger], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryThumbstick
Button.SecondaryThumbstick
Maps to RawTouch: [Touch: RThumbstick], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryThumbRest
0x00100000
Maps to RawTouch: [Touch: RThumbRest], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryTouchpad
Button.SecondaryTouchpad
Maps to RawTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
Any
~None
Maps to RawTouch: [Touch, LTouch, RTouch: Any], [Gamepad, Remote: None].

RawTouch Enum

Raw capacitive touch mappings that can be used to directly query the state of a controller.

Enumeration Constants

MemberValueDescription
None
0
Maps to Physical Touch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
A
RawButton.A
Maps to Physical Touch: [Touch, RTouch: A], [Gamepad, LTouch, Remote: None].
B
RawButton.B
Maps to Physical Touch: [Touch, RTouch: B], [Gamepad, LTouch, Remote: None].
X
RawButton.X
Maps to Physical Touch: [Touch, LTouch: X], [Gamepad, RTouch, Remote: None].
Y
RawButton.Y
Maps to Physical Touch: [Touch, LTouch: Y], [Gamepad, RTouch, Remote: None].
LIndexTrigger
0x00001000
Maps to Physical Touch: [Touch, LTouch: LIndexTrigger], [Gamepad, RTouch, Remote: None].
LThumbstick
RawButton.LThumbstick
Maps to Physical Touch: [Touch, LTouch: LThumbstick], [Gamepad, RTouch, Remote: None].
LThumbRest
0x00000800
Maps to Physical Touch: [Touch, LTouch: LThumbRest], [Gamepad, RTouch, Remote: None].
LTouchpad
RawButton.LTouchpad
Maps to Physical Touch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
RIndexTrigger
0x00000010
Maps to Physical Touch: [Touch, RTouch: RIndexTrigger], [Gamepad, LTouch, Remote: None].
RThumbstick
RawButton.RThumbstick
Maps to Physical Touch: [Touch, RTouch: RThumbstick], [Gamepad, LTouch, Remote: None].
RThumbRest
0x00000008
Maps to Physical Touch: [Touch, RTouch: RThumbRest], [Gamepad, LTouch, Remote: None].
RTouchpad
RawButton.RTouchpad
Maps to Physical Touch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
Any
~None
Maps to Physical Touch: [Touch, LTouch, RTouch: Any], [Gamepad, Remote: None].

NearTouch Enum

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.

Enumeration Constants

MemberValueDescription
None
0
Maps to RawNearTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
PrimaryIndexTrigger
0x00000001
Maps to RawNearTouch: [Touch, LTouch: LIndexTrigger], [RTouch: RIndexTrigger], [Gamepad, Remote: None].
PrimaryThumbButtons
0x00000002
Maps to RawNearTouch: [Touch, LTouch: LThumbButtons], [RTouch: RThumbButtons], [Gamepad, Remote: None].
SecondaryIndexTrigger
0x00000004
Maps to RawNearTouch: [Touch: RIndexTrigger], [Gamepad, LTouch, RTouch, Remote: None].
SecondaryThumbButtons
0x00000008
Maps to RawNearTouch: [Touch: RThumbButtons], [Gamepad, LTouch, RTouch, Remote: None].
Any
~None
Maps to RawNearTouch: [Touch, LTouch, RTouch: Any], [Gamepad, Remote: None].

RawNearTouch Enum

Raw near touch mappings that can be used to directly query the state of a controller.

Enumeration Constants

MemberValueDescription
None
0
Maps to Physical NearTouch: [Gamepad, Touch, LTouch, RTouch, Remote: None].
LIndexTrigger
0x00000001
Maps to Physical NearTouch: [Touch, LTouch: Implies finger is in close proximity to LIndexTrigger.], [Gamepad, RTouch, Remote: None].
LThumbButtons
0x00000002
Maps to Physical NearTouch: [Touch, LTouch: Implies thumb is in close proximity to LThumbstick OR X/Y buttons.], [Gamepad, RTouch, Remote: None].
RIndexTrigger
0x00000004
Maps to Physical NearTouch: [Touch, RTouch: Implies finger is in close proximity to RIndexTrigger.], [Gamepad, LTouch, Remote: None].
RThumbButtons
0x00000008
Maps to Physical NearTouch: [Touch, RTouch: Implies thumb is in close proximity to RThumbstick OR A/B buttons.], [Gamepad, LTouch, Remote: None].
Any
~None
Maps to Physical NearTouch: [Touch, LTouch, RTouch: Any], [Gamepad, Remote: None].

Axis1D Enum

Virtual 1-dimensional axis (float) mappings that allow the same input bindings to work across different controllers.

Enumeration Constants

MemberValueDescription
None
0
Maps to RawAxis1D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
PrimaryIndexTrigger
0x01
Maps to RawAxis1D: [Gamepad, Touch, LTouch: LIndexTrigger], [RTouch: RIndexTrigger], [Remote: None].
PrimaryHandTrigger
0x04
Maps to RawAxis1D: [Touch, LTouch: LHandTrigger], [RTouch: RHandTrigger], [Gamepad, Remote: None].
SecondaryIndexTrigger
0x02
Maps to RawAxis1D: [Gamepad, Touch: RIndexTrigger], [LTouch, RTouch, Remote: None].
SecondaryHandTrigger
0x08
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
~None
Maps to RawAxis1D: [Gamepad, Touch, LTouch, RTouch: Any], [Remote: None].

RawAxis1D Enum

Raw 1-dimensional axis (float) mappings that can be used to directly query the state of a controller.

Enumeration Constants

MemberValueDescription
None
0
Maps to Physical Axis1D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
LIndexTrigger
0x01
Maps to Physical Axis1D: [Gamepad, Touch, LTouch: LIndexTrigger], [RTouch, Remote: None].
LHandTrigger
0x04
Maps to Physical Axis1D: [Touch, LTouch: LHandTrigger], [Gamepad, RTouch, Remote: None].
RIndexTrigger
0x02
Maps to Physical Axis1D: [Gamepad, Touch, RTouch: RIndexTrigger], [LTouch, Remote: None].
RHandTrigger
0x08
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
~None
Maps to Physical Axis1D: [Gamepad, Touch, LTouch, RTouch: Any], [Remote: None].

Axis2D Enum

Virtual 2-dimensional axis (Vector2) mappings that allow the same input bindings to work across different controllers.

Enumeration Constants

MemberValueDescription
None
0
Maps to RawAxis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
PrimaryThumbstick
0x01
Maps to RawAxis2D: [Gamepad, Touch, LTouch: LThumbstick], [RTouch: RThumbstick], [Remote: None].
PrimaryTouchpad
0x04
Maps to RawAxis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
SecondaryThumbstick
0x02
Maps to RawAxis2D: [Gamepad, Touch: RThumbstick], [LTouch, RTouch, Remote: None].
SecondaryTouchpad
0x08
Maps to RawAxis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
Any
~None
Maps to RawAxis2D: [Gamepad, Touch, LTouch, RTouch: Any], [Remote: None].

RawAxis2D Enum

Raw 2-dimensional axis (Vector2) mappings that can be used to directly query the state of a controller.

Enumeration Constants

MemberValueDescription
None
0
Maps to Physical Axis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
LThumbstick
0x01
Maps to Physical Axis2D: [Gamepad, Touch, LTouch: LThumbstick], [RTouch, Remote: None].
LTouchpad
0x04
Maps to Physical Axis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
RThumbstick
0x02
Maps to Physical Axis2D: [Gamepad, Touch, RTouch: RThumbstick], [LTouch, Remote: None].
RTouchpad
0x08
Maps to Physical Axis2D: [Gamepad, Touch, LTouch, RTouch, Remote: None].
Any
~None
Maps to Physical Axis2D: [Gamepad, Touch, LTouch, RTouch: Any], [Remote: None].

OpenVRButton Enum

OpenVR Controller State Enum.

Enumeration Constants

MemberValue
None
0
Two
0x0002
Thumbstick
0x100000000
Grip
0x0004

Controller Enum

Identifies a controller which can be used to query the virtual or raw input state.

Enumeration Constants

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

Handedness Enum

Enumeration Constants

MemberValue
Unsupported
OVRPlugin.Handedness.Unsupported
LeftHanded
OVRPlugin.Handedness.LeftHanded
RightHanded
OVRPlugin.Handedness.RightHanded

HapticsLocation Enum

Enumeration Constants

MemberValue
None
OVRPlugin.HapticsLocation.None
Hand
OVRPlugin.HapticsLocation.Hand
Thumb
OVRPlugin.HapticsLocation.Thumb
Index
OVRPlugin.HapticsLocation.Index

InteractionProfile Enum

Enumeration Constants

MemberValue
None
OVRPlugin.InteractionProfile.None
Touch
OVRPlugin.InteractionProfile.Touch
TouchPro
OVRPlugin.InteractionProfile.TouchPro
TouchPlus
OVRPlugin.InteractionProfile.TouchPlus

Hand Enum

Enumeration Constants

MemberValue
None
OVRPlugin.Hand.None
HandLeft
OVRPlugin.Hand.HandLeft
HandRight
OVRPlugin.Hand.HandRight

InputDeviceShowState Enum

Enumeration Constants

Member
Always
ControllerInHandOrNoHand
ControllerInHand
ControllerNotInHand
NoHand

ControllerInHandState Enum

Enumeration Constants

Member
NoHand
ControllerInHand
ControllerNotInHand

HapticsParametricStreamFrameType Enum

Describes if and how the haptic data in this structure is part of a longer haptic stream.

Enumeration Constants

MemberValueDescription
None
OVRPlugin.HapticsParametricStreamFrameType.None
For a single call to SetControllerHapticsParametric().
FirstFrame
OVRPlugin.HapticsParametricStreamFrameType.FirstFrame
For the first call.
IntermediateFrame
OVRPlugin.HapticsParametricStreamFrameType.IntermediateFrame
For calls in the middle.
LastFrame
OVRPlugin.HapticsParametricStreamFrameType.LastFrame
For the last call of the stream sequence.
MaxEnum
OVRPlugin.HapticsParametricStreamFrameType.MaxEnum
Max value of this enum.

OpenVRController Enum

OpenVR Controller Enum.

Enumeration Constants

MemberValue
Unknown
0
OculusTouch
1
ViveController
2
WindowsMRController
3