XRInputSource: gamepad プロパティ

読み取り専用の XRInputSourcegamepad プロパティは、 XR 入力ソースがゲームパッドまたは同等の機器である場合、ボタンと軸の状態を記述した Gamepad オブジェクトを返します。機器がゲームパッドのようなものでない場合、このプロパティの値は null です。

返される Gamepad インスタンスはゲームパッド API で説明されているとおりに動作します。ただし、いくつか注意すべきことがあります。

  • XRInputSource に属する Gamepad インスタンスは navigator.getGamepads() が返す配列には含まれません。ゲームパッドは厳密に WebXR ハードウェアに関連付けられるものであり、汎用のゲーム機器ではありません。
  • Gamepad.id は空文字列 ("") です。
  • Gamepad.index-1 です。
  • Gamepad.connectedXRInputSource がアクティブな XR 入力ソースのリストから除去されるか、 XRSession (en-US) が終わるまでは true です。
  • Gamepad.axes で報告される軸がタッチパッドの軸を表す場合、関連する GamepadButton.touched プロパティが false のとき、値は 0 になります。
  • Gamepad.mapping は "xr-standard" を返します。

gamepad 入力ソースの使用

js
for (const source of frame.session.inputSources) {
  const gamepad = source.gamepad;
  if (gamepad) {
    if (gamepad.buttons[2].pressed) {
      // 何かする
    }
  }
}

仕様書

Specification
WebXR Gamepads Module - Level 1
# dom-xrinputsource-gamepad

ブラウザーの互換性

BCD tables only load in the browser