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:
-
XRInputSource
Gamepad
instances 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
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