震動
在遊戲中,為受擊、跳躍或按鈕按下加入一次震動脈衝。Vibrate 會向執行遊戲的裝置、受支援的實體控制器,或已配對的 iPhone 控制器傳送回饋。
請前往 Interaction > Controls 找到它。
屬性
以深色模式呈現的原生屬性面板,使用 Vibrate 的預設設定。
| 屬性 | 預設值 | 設定內容 |
|---|---|---|
| Player | 1 | 要震動的玩家所指派的控制器。使用正整數代表單一玩家。0 會要求所有已連線的控制器提供回饋。Device 不受此屬性影響。 |
| Vibrate | Auto | 脈衝傳送的目標。選擇 Auto、Device、Controller 或 Device and Controller。請參閱下方的選項說明。 |
| Intensity (%) | 50 | 強度,範圍為 0 到 100%。設為 0 可停止。超出範圍的數值會限制在範圍內。 |
| Duration (ms) | 200 | 持續時間,範圍為 0 到 30000 毫秒。1000 ms 為一秒。設為 0 可停止。短促脈衝可使用 150 ms。 |
你可以將數值輸出拖曳到 Player、Intensity 或 Duration。Intensity 使用百分比。如果來源輸出範圍為 0 到 1,請先乘以 100。Duration 使用毫秒。
選擇脈衝傳送目標
- Auto: 優先嘗試所選玩家的控制器。如果控制器無法提供回饋,則會改為嘗試執行遊戲的裝置。
- Device: 使用執行遊戲之裝置的內建觸覺回饋。例如,匯出的遊戲在受支援的 iPhone 上執行時,可以讓該 iPhone 震動。
- Controller: 使用指派給 Player 的控制器。可以是受支援的實體控制器,也可以是已配對的 iPhone。回饋會由該玩家的控制器提供。
- Device and Controller: 同時要求執行遊戲的裝置和所選玩家的控制器提供回饋。
Device 一律指執行遊戲的裝置。如果遊戲在 iPad 上執行,而玩家使用已配對的 iPhone,請選擇 Controller 讓 iPhone 震動。iPad 沒有內建觸覺回饋。
輸入與事件連線
每次執行都會要求一次脈衝。將遊戲事件連接到 Vibrate 上方的白色圓形。即使目標無法震動,Vibrate 底部的白色事件連接仍會在送出要求後執行。它不會等到 Duration 結束。
對同一個目標發出新的要求時,會取代目前的脈衝。將 Intensity 或 Duration 設為 0 即可停止。在 Auto 模式中,停止要求也會清除先前使用的裝置備援回饋。
按鈕每按一次只發出一個脈衝時,請使用 Pressed。While Held 可能會每影格執行一次 Vibrate,並不斷重新啟動脈衝。
輸出
success(布林值):至少有一個目標接受要求時為true。如果沒有任何所選目標接受要求,則為false。要求傳送至已配對手機,不代表能確認玩家實際感受到震動。即使要求已獲接受,瀏覽器或裝置設定仍可能阻止回饋。
即使 success 為 false,已連接的遊戲行為仍會執行。如果你自己的 UI 需要確認要求結果,可以使用此輸出。
範例:按鈕每按一次發出一個脈衝
- 加入 Controller Event。不要將任何白色連線接到它的輸入端,讓它從場景開始時就監聽。
- 將 Player 設為 1、Control 設為 Bottom Button (A / ×),並將 Event 設為 Pressed。
- 加入 Vibrate。將 Player 設為 1、Vibrate 設為 Controller、Intensity (%) 設為 70,並將 Duration (ms) 設為 150。
- 將 Controller Event 底部的白色圓形連接到 Vibrate 頂部的白色圓形。
- 使用已指派給 Player 1 的控制器執行遊戲,並按下底部的正面按鈕。
白色連線會要求發出脈衝。此範例不需要拖曳資料。
也可以將已配對的 iPhone 設為 Player 1 來測試。行為設定相同。手機必須支援內建觸覺回饋,並保持 Controller Mode 開啟。
為每位玩家提供回饋
Vibrate 會使用目前的控制器指派。將 Player 設為 2,即可向 Player 2 的控制器傳送回饋。如果該玩家透過 Assign Controller 或 Controls 疊加介面選擇其他控制器,下一次脈衝就會傳送至新指派的控制器。
你也可以使用 Controller Event 的 playerIndex 輸出:
- 在此範例中,將 Controller Event 的 Player 設為 2。
- 選取 Vibrate,開啟其屬性。
- 將 Controller Event 的綠色輸出圖示拖曳到 Vibrate 的 Player 欄位。選擇
playerIndex。 - 保留白色執行連線。綠色參照會提供玩家編號;白色連線則會要求發出脈衝。
教學動畫。畫面中顯示玩家參照和執行連線。
如果 Controller Event 使用 Player 0 監聽,未指派的控制器可能會輸出 playerIndex = 0。Vibrate 會將 0 解讀為所有已連線的控制器。若要用此輸出為單一玩家提供回饋,請先將控制器指派至正整數玩家欄位。
為現有遊戲加入回饋
保留現有的觸控、鍵盤或控制器操作。將 Vibrate 接在應觸發脈衝的遊戲事件或操作之後。你不需要另外設定震動輸入對應。
例如,已透過 Map Control Inputs 設定控制器替代操作的自訂 Started Touching 按鈕,可以讓任一輸入都觸發同一個 Vibrate 行為。若要由玩家的控制器提供回饋,請選擇 Controller;若希望在控制器不可用時改由裝置提供回饋,請選擇 Auto。
Vibrate 不會在已配對手機的版面上新增按鈕。該版面仍由 Controller Event 和 Map Control Inputs 的綁定決定。玩家不會在 Controls 疊加介面中重新綁定震動。
相容性與停止條件
回饋需要硬體和平台支援。控制器可能可以輸入,但不支援震動。已配對的 iPhone 會回報是否支援觸覺回饋;已配對的 iPad 無法透過內建觸覺回饋震動。
原生播放器和 Universal player 使用相同的強度與持續時間單位。瀏覽器回饋取決於瀏覽器、已連線的控制器及其設定。某些瀏覽器的裝置震動 API 無法調整強度。
遊戲失去焦點、控制器工作階段結束,或控制器中斷連線或變更所屬玩家時,回饋就會停止。離開 Controller Mode 或鎖定已配對的手機時,手機本身的回饋也會停止。網路連線中斷可能會延遲停止要求,因此每個脈衝都有持續時間上限。
疑難排解
- 已配對的 iPhone 沒有震動: 將 Vibrate 設為 Controller,並確認 Player 與手機的指派相符。保持 Controller Mode 開啟。手機必須支援內建觸覺回饋。
- 震動的是錯誤的控制器: 檢查 Player。值為 0 時會要求所有已連線的控制器提供回饋。
- 脈衝持續太久: Duration 使用毫秒。輸入 150 代表 150 ms,輸入 1000 代表一秒。
- 脈衝持續重新啟動: 檢查輸入事件是否為 While Held。若只需一次脈衝,請使用 Pressed。
- 遊戲正常執行,但感覺不到震動: 檢查控制器是否支援震動,以及平台設定。讀取
success,確認要求是否已獲接受。

