Skip to content

XRController Class ​

The XRController class represents an emulated XR input device, such as a handheld controller, used within WebXR projects.

Properties ​

Properties of the XRController class provide access to the controller's current state, including its connection status, position, orientation, and the associated input source.

connected ​

Indicates whether the controller is currently connected and active.

  • Type: boolean

position ​

Provides the current position of the controller in the 3D space, enabling position tracking within the virtual environment.

  • Type: Vector3
  • Readonly

quaternion ​

Describes the current orientation of the controller as a quaternion, essential for accurate directional tracking.

  • Type: Quaternion
  • Readonly

inputSource ​

Accesses the underlying XRInputSource object for this controller, linking it to the broader XR input system.

  • Type: XRInputSource
  • Readonly

Methods ​

Methods of the XRController class allow for dynamic updates to the controller's state, simulating user interactions such as button presses, touch, and movement along axes.

updateButtonValue ​

Simulates the press or release of a button on the controller by updating its value.

typescript
updateButtonValue(id: string, value: number): void
  • id: string - The identifier for the button to update.
  • value: number - The new value for the button, with 0 indicating unpressed and 1 indicating fully pressed.

updateButtonTouch ​

Simulates touching or releasing a touch-sensitive button on the controller.

typescript
updateButtonTouch(id: string, touched: boolean): void
  • id: string - The identifier for the button to update.
  • touched: boolean - Indicates whether the button is being touched.

updateAxis ​

Updates the value of a specific axis, such as a thumbstick or touchpad direction.

typescript
updateAxis(id: string, type: 'x-axis' | 'y-axis', value: number): void
  • id: string - The identifier for the axis group to update.
  • type: 'x-axis' | 'y-axis' - Specifies which axis to update.
  • value: number - The new value for the axis, between -1 (full negative) and 1 (full positive).

updateAxes ​

Simultaneously updates the values of both axes for a specific control element on the controller.

typescript
updateAxes(id: string, x: number, y: number): void
  • id: string - The identifier for the axis group to update.
  • x: number - The new value for the x-axis.
  • y: number - The new value for the y-axis.