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

IController Interface

The Interaction SDK's fundamental concept of an XR controller, exposing data such as pose, pointer pose, and button states.
This interface encapsulates the core capabilities common to all XR controllers supported by the Interaction SDK. Where possible, you should use this interface instead of concrete alternatives such as Controller, which are less general and portable.

Properties

Indicates whether the tracked controller is Handedness.Left- or Handedness.Right-handed.
Indicates the expected scale of the controller in world space.
Under most circumstances, this scale is 1; however, if the tracking space has been scaled relative to world space, that scaling will be reflected in this value.
Indicates whether the controller is available and has valid data.
Note that, because this reflects both the general availability and present validity of controller data, this value can vary from frame to frame depending on whether the system is currently able to track the controller. This is a valid API to check in order to determine whether up-to-date controller data is available at a given moment.
Indicates whether the controller is currently being tracked by the system such that valid poses for it can be retrieved.
Retrieves a Input.ControllerInput which can be used to query the state of the buttons, thumbsticks, and other input modalities available on the controller.

Events

Event indicating that the controller has been updated and can now be queried for potentially new data.

Member Functions

Attempts to retrieve the pose of the controller in world space.
The exact relationship of the retrieved pose to the physical position of the controller can vary by platform, but it typically corresponds to the root transform of the intended visual affordance for the physical controller being tracked.
Parameters
pose
A void world space pose for the controller if available, identity otherwise
Returns
True if the pose argument was populated with a valid pose, false otherwise
Attempts to return a valid "pointer pose" for the controller.
A "pointer pose" is a world-space pose (position and orientation) intended to be used as a directional input, conceptually comparable to "pointing at something." Typically, individual controllers provide their own "pointer pose" based on the ergonomics of the device; this method provides a unified way to query for this.
Parameters
pose
A valid world-space pointer pose if one could be calculated, identity otherwise
Returns
True if the pose argument was populated with a valid pointer pose, false otherwise
Batch query method for determining whether any within a set of buttons (characterized by a bit mask of ControllerButtonUsage) is currently active.
Parameters
buttonUsage
The bit mask indicating which buttons are part of the query
Returns
True if any of the queried buttons are active, false otherwise
Batch query method for determining whether all of a set of buttons (characterized by a bit mask of ControllerButtonUsage) are currently active.
Parameters
buttonUsage
The bit mask indicating which buttons are part of the query
Returns
True if all of the queried buttons are active, false otherwise
Did you find this page helpful?
Thumbs up icon
Thumbs down icon