控制器事件 | hyperPad Documentation
Logo
Documentation互動控制器事件
互動

控制器事件

Published 2026年9月30日
控制器事件

說明

使用 Controller Event,可透過實體控制器執行自訂行為。你可以從頭建立控制器操作,不必新增螢幕上的搖桿或按鈕。

選擇玩家、控制項,以及你想接收的事件。將它的白色事件輸出連接到下一個行為。若要自訂移動或瞄準,請將它的數值輸出拖曳到負責計算移動的行為中。

如果遊戲已經使用 Joystick Controlled、Jump with Button 或觸控按鈕,Map Control Inputs 可以為現有輸入新增替代方式。

按下按鈕時播放音效

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

白色連線會在按下按鈕時執行 Play Sound。此範例不需要綠色資料拖曳。

  1. 新增 Controller Event,並讓它從場景開始時便開始監聽。
  2. 將 Player 設為 1、Control 設為 Bottom Button (A / ×),並將 Event 設為 Pressed。
  3. 新增 Play Sound。使用 Select Asset,從資產庫中選擇一段短音效。
  4. 將 Controller Event 底部任一空白的白色圓圈,連接到 Play Sound 頂部的白色圓圈。
  5. 連接支援的控制器並執行專案。按下底部面板按鈕。

每按一次按鈕,就會聽到一次音效。按住按鈕不會重複觸發此 Pressed 事件。While Held 會在控制項持續啟用的每個影格執行連接的行為,因此只有在你需要重複執行時才使用。

綠色的 Input 輸出會識別這個控制器輸入,供輸入相關功能使用。使用白色執行連線來觸發 Play Sound。

屬性

Controller Event 的屬性設定為 Player 1、Bottom Button (A / ×) 和 Pressed。

屬性預設值設定內容
Player1要讀取其控制器的指定玩家。輸入 0 可監聽任何已連接的控制器,包括未指派給玩家的控制器。
ControlBottom Button (A / ×)要監聽的控制器位置。從下方的控制項中選擇一個。連接的裝置必須支援該控制項。
EventPressed選擇白色事件連線執行的時機。

控制項選項

類型確切選項
方向控制項D-pad、Left Stick、Right Stick
面板按鈕Bottom Button (A / ×)、Right Button (B / ○)、Left Button (X / □)、Top Button (Y / △)
肩部按鈕與扳機Left Shoulder、Right Shoulder、Left Trigger、Right Trigger
搖桿按壓Left Stick Click (L3)、Right Stick Click (R3)
選單按鈕Menu、Options

面板按鈕依位置命名,因此你可以在支援的不同控制器品牌間使用相同設定。控制器上印的字母或符號可能會有所不同。

事件選項

事件連接的行為執行時機
Pressed控制項啟用時執行一次。對搖桿或 D-pad 而言,當它偏離中立位置時便會觸發。
Released控制項停用或回到中立位置時執行一次。
While Held控制項持續啟用期間,每個影格都會執行。
Value Changed每當數值變更時執行,包括方向或壓力變化,以及回到中立位置時。

搖桿持續啟用時改變方向,不會再次觸發 Pressed 事件。使用 Value Changed 讀取這些變化;如果計算需要每個影格都執行,則使用 While Held。

輸出

輸出類型意義
Input輸入參照識別此控制器輸入,包括其 Player 和 Control。第一個硬體事件發生前即可使用。在 Rebind Input 中選取此行為,即可變更它自己的控制器綁定。
value數字按鈕或扳機的壓力,或方向幅度,範圍為 0 到 1。數位按鈕通常輸出 0 和 1。
x數字水平方向值,向左為 −1,向右為 1。按鈕輸出 0。
y數字垂直方向值,向下為 −1,向上為 1。按鈕輸出 0。
pressed布林值控制項啟用時為 True;停用時為 false。
deviceID文字提供此事件的控制器在執行期間的 ID。你可以將它傳給 Assign Controller。請在目前工作階段中使用,不要將它儲存為永久的硬體 ID。
playerIndex數字(整數)觸發事件的控制器目前的指派狀態。0 表示未指派。若使用 Player 0 監聽,這個值可能會與 Player 屬性不同。
dt數字While Held 影格更新經過的秒數。使用此輸出進行 While Held 的逐影格計算。

數值和裝置輸出會描述剛觸發的事件。Input 提供持續有效的輸入參照。變更輸出值不會改變你在屬性中選取的 Player。

按下按鈕時加入震動

將 Controller Event 連接到 Vibrate,即可在玩家按下按鈕時觸發震動。此範例使用 Player 1、Bottom Button (A / ×) 和 Pressed。

將 Vibrate 的 Player 設為 1,並將 Vibrate 選項設為 Controller。在 Intensity (%) 輸入 70,並在 Duration (ms) 輸入 150。將 Controller Event 底部的白色圓圈連接到 Vibrate 頂部的白色圓圈。

Controller Event 設為 Player 1、Bottom Button (A / ×)、Pressed,並連接到 Vibrate,設定為 Player 1、Controller、70% 和 150 ms。

此範例會在每次按下時要求觸發一次短促震動。支援觸覺回饋的已配對 iPhone 也可使用此功能。

你可以將 Controller Event 的 playerIndex 輸出拖曳到 Vibrate 的 Player 欄位,讓它依照事件中玩家的指派狀態執行。若要回饋給單一玩家,請使用大於零的已指派玩家欄位。Vibrate 會將 0 視為所有已連接的控制器。

建立自訂移動方式

選擇 Left Stick,並在自訂移動計算中使用 x 和 y。若要建立資料連線,請先選取接收行為。將 Controller Event 的綠色輸出圖示拖曳到接收屬性,然後從輸出清單中選擇 x 或 y。

將搖桿完全推向右側時,輸出為 x = 1, y = 0。完全推向上方時,輸出為 x = 0, y = 1。依照遊戲所需的速度或力道調整這些數值。

規劃好放開搖桿時應發生什麼事。控制項停用時,While Held 便會停止執行。如果你的行為圖表設定了會持續生效的速度,請加入放開時停止速度的動作,或使用 Value Changed,讓行為圖表收到中立值。角色的加速、碰撞和動畫則由你的移動行為決定。

若要為自訂動作提供鍵盤或滑鼠替代輸入,請在適當情況下將 Keyboard Event 或 Mouse Event 連接到相同動作。Controller Event 會讀取控制器控制項。它的 Input 參照不能作為反向對應,透過 Map Control Inputs 建立觸控輸入。

多名玩家

一名玩家的事件使用 Player 1,另一名玩家則使用 Player 2。兩名玩家可以使用同一個 Control 名稱。Assign Controller 和 Controls 覆蓋介面會決定哪個已連接裝置屬於各個欄位。

使用 Player 0 時,各裝置可以獨立觸發事件。deviceID 和 playerIndex 輸出會告訴你事件來自哪個控制器。這適合用於加入遊戲的動作。使用 While Held 時,同一影格內,兩個持續按住控制項的控制器可能會分別觸發回呼。

請透過平台支援的 Bluetooth 或 USB 設定連接或配對控制器。遊戲會從已連接的裝置中進行選擇。

重新綁定與執行

Controller Event 啟動後便會開始監聽。若將另一個行為連接到它頂部的白色圓圈,該執行流程會啟動監聽器。僅完成註冊不會觸發所選的輸入事件。

編輯器中可編輯的 Controls 覆蓋介面和 Rebind Input 可變更此事件的控制器綁定。系統產生的各玩家 Controls 清單不會列出 Player 0 監聽器,因為這類監聽器通常用於加入遊戲或選單導覽。如需變更,可在 Rebind Input 中明確選取這類事件。

停用的行為和暫停的遊戲過程不會執行這些輸入動作。重新綁定期間,擷取到的輸入不會進入遊戲。若要處理中斷連線,請使用 Controller Status。應將 Released 視為輸入事件,而不要依賴它來判斷裝置是否已中斷連線。

相關內容