XRInputSource: gamepad property
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The read-only XRInputSource
property gamepad
returns a Gamepad
object describing the state of the buttons and axes on the XR input source, if it is a gamepad or comparable device. If the device isn't a gamepad-like device, this property's value is null
.
The Gamepad
instance returned behaves as described by the Gamepad API. However, there are a few things to note:
Gamepad
instances belonging toXRInputSource
are not included in the array returned bynavigator.getGamepads()
. Gamepads are strictly associated with the WebXR hardware and are not general-purpose gaming devices.Gamepad.id
is an empty string (""
)Gamepad.index
is-1
Gamepad.connected
istrue
until theXRInputSource
is removed from the list of active XR input sources or theXRSession
is ended.- If an axis reported by
Gamepad.axes
represents an axis of a touchpad, the value is 0 when the associatedGamepadButton.touched
property isfalse
. Gamepad.mapping
returns "xr-standard".
Examples
Using a gamepad input source
js
for (const source of frame.session.inputSources) {
const gamepad = source.gamepad;
if (gamepad) {
if (gamepad.buttons[2].pressed) {
// do something
}
}
}
Specifications
Specification |
---|
WebXR Gamepads Module - Level 1 # dom-xrinputsource-gamepad |
Browser compatibility
BCD tables only load in the browser