取得控制器 | hyperPad Documentation
Logo
Documentation互動取得控制器
互動

取得控制器

Published 2026年9月30日
取得控制器

使用 Get Controllers 讀取已連接的控制器及目前的玩家指派。你可以使用結果建立控制器選擇器,或顯示可用的控制器數量。

請前往 Interaction > Controls 找到此行為。

屬性

Get Controllers 沒有裝置選擇屬性。每次執行時都會讀取完整的已連接控制器清單。

輸入與事件連線

需要最新快照時,請執行此行為。底部的事件連線會在寫入 controllers 和 count 後立即執行。

快照會保持讀取當下的狀態。若要更新快照,請再次執行 Get Controllers。連線或指派變更時,Controller Status 可以觸發更新。

輸出

輸出內容
controllers已連接的實體控制器及其玩家指派所組成的陣列。若沒有連接任何控制器,陣列便為空。
countcontrollers 中的記錄數量。若沒有連接任何控制器,值為 0。鍵盤和滑鼠不會計入此數量。

Get Controllers 沒有直接的 deviceID 輸出。每個控制器的 ID 都位於 controllers 陣列中的字典內。

控制器記錄

controllers 中的每個項目都是一個已連接實體控制器的字典。讀取欄位(例如 deviceID)之前,請先從陣列中讀取字典。

欄位可讀取的內容
deviceID控制器在目前遊戲工作階段中的 ID。請將此值用於 Assign Controller。
name平台提供的名稱。兩個控制器可能有相同的名稱。
vendorName回報的控制器廠商或名稱。此值可能與 name 相同。
connected出現在此已連接控制器清單中的項目,其值為 true。
playerIndex指派給它的玩家編號。0 代表已連接但尚未指派。
deviceTypecontroller。鍵盤和滑鼠不在此清單中。
connectionOrder用於維持裝置連線順序的數字。請使用 deviceID 識別裝置,而不要依據它在陣列中的位置。
controls若有提供,則為控制項識別碼陣列,例如 buttonA、leftStick 和 buttonMenu。使用前請先確認此欄位是否存在。

Universal player 也可能提供 capabilitiesKnown、standardizedProfile 和 observedControls。這些欄位在不同平台上不一定都有。capabilitiesKnown 表示完整控制項清單是否已確認。standardizedProfile 表示平台是否辨識出標準遊戲手把配置。observedControls 列出本次工作階段中曾產生輸入的控制項。已辨識的配置描述的是可能存在的控制項,並不代表已確認連接的裝置具備每一個按鈕。

請使用此行為提供的控制器清單建立選擇器。不要把缺少能力欄位視為控制器沒有按鈕的證據。

連線指南:顯示已連接的控制器數量

這是示意範例,說明如何在自己的 UI 中使用標籤。

Get Controllers 連線指南:確切的行為設定、執行連線與資料拖曳。

  1. 建立名為 Controller Count 的標籤 Object。
  2. 加入 Get Controllers,並在此 UI 開啟時執行。
  3. 將其底部的事件連線接到 Set Label。
  4. 在 Set Label 中,將 Controller Count 設為 Object A。
  5. 將 Get Controllers 的綠色 count 輸出拖曳到 Set Label 的 Text 屬性。

為 Set Label 的 Text 欄位選取 Get Controllers 的 count 輸出。

標籤會顯示最新快照中的數量。綠色資料參照提供數字;白色執行連線則會在讀取數量後更新標籤。

若要顯示裝置名稱清單,遊戲必須讀取 controllers 中的個別字典。此數量範例不會選取控制器或擷取裝置 ID。產生的 Controls overlay 已提供控制器選擇器。

玩家、ID 與配對

新連接的控制器會指派給第一個可用的正數玩家欄位。請使用 Assign Controller 變更此指派。

玩家編號是遊戲中的欄位,不是永久的控制器識別。裝置與玩家之間的選擇只在目前工作階段有效。進行指派時,請使用此清單或控制器事件提供的最新 deviceID 值。

控制器必須先透過平台支援的設定完成連接。Get Controllers 不會配對 Bluetooth 硬體。可連接的控制器數量上限取決於裝置和作業系統。

相關項目