Gamepad

Baseline 廣泛可用 *

此特性已得到良好確立,可跨多種裝置和瀏覽器版本使用。自 2017 年 3 月起,所有瀏覽器均支援此特性。

* 此特性的某些部分可能存在不同級別的支援。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

Gamepad 介面是 Gamepad API 的一部分,它定義了一個單獨的遊戲手柄或其他控制器,允許訪問按鈕按下、軸位置和 ID 等資訊。

Gamepad 物件可以透過兩種方式之一返回:透過 gamepadconnectedgamepaddisconnected 事件的 gamepad 屬性,或者透過 Navigator.getGamepads() 方法返回的陣列中的任何位置獲取。

注意: 遊戲手柄功能的可用性因平臺和控制器的不同組合而異。即使控制器支援某個功能(例如,觸覺反饋),平臺也可能不支援該控制器上的該功能。

例項屬性

Gamepad.axes 只讀

一個數組,表示裝置上的帶有軸的控制元件(例如,模擬搖桿)。

Gamepad.buttons 只讀

一個 gamepadButton 物件陣列,表示裝置上的按鈕。

Gamepad.connected 只讀

一個布林值,指示遊戲手柄是否仍連線到系統。

Gamepad.displayId 只讀 已棄用 非標準

返回關聯的 VRDisplayVRDisplay.displayId(如果相關)——遊戲手柄正在控制其顯示場景的 VRDisplay

Gamepad.hand 只讀 實驗性

一個列舉,定義了控制器正握在哪個手中,或者最有可能握在哪個手中。

Gamepad.hapticActuators 只讀 實驗性

一個數組,包含 GamepadHapticActuator 物件,每個物件代表控制器上可用的觸覺反饋硬體。

Gamepad.vibrationActuator 只讀

一個 GamepadHapticActuator 物件,代表控制器上可用的觸覺反饋硬體。

Gamepad.id 只讀

一個字串,包含有關控制器的標識資訊。

Gamepad.index 只讀

一個整數,會自動遞增,以確保連線到系統的每個裝置都具有唯一性。

Gamepad.mapping 只讀

一個字串,指示瀏覽器是否已將裝置上的控制元件對映到已知的佈局。

Gamepad.pose 只讀 實驗性

一個 GamepadPose 物件,表示與 WebVR 控制器相關的姿態資訊(例如,它在三維空間中的位置和方向)。

Gamepad.timestamp 只讀

一個 DOMHighResTimeStamp,表示此遊戲手柄資料的最後更新時間。

示例

js
window.addEventListener("gamepadconnected", (e) => {
  console.log(
    "Gamepad connected at index %d: %s. %d buttons, %d axes.",
    e.gamepad.index,
    e.gamepad.id,
    e.gamepad.buttons.length,
    e.gamepad.axes.length,
  );
});

規範

規範
Gamepad
# gamepad-interface
Gamepad 擴充套件
# partial-gamepad-interface

瀏覽器相容性

另見