XRInputSource.gamepad
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:
-
XRInputSourceGamepadinstances 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.idis an empty string ("") -
Gamepad.indexis-1 -
Gamepad.connectedistrueuntil theXRInputSourceis removed from the list of active XR input sources or theXRSessionis ended. - If an axis reported by
Gamepad.axesrepresents an axis of a touchpad, the value is 0 when the associatedGamepadButton.touchedproperty isfalse. -
Gamepad.mappingreturns "xr-standard".
Examples
Using a gamepad input source
for (let source of frame.session.inputSources) { let gamepad = source.gamepad; if (gamepad) { if (gamepad.buttons[2].pressed) { // do something } } }
Specifications
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
gamepad |
79 |
79 |
No |
No |
No |
No |
No |
79 |
No |
No |
No |
11.2 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource/gamepad