地圖控制輸入
說明
使用 Map Control Inputs,為你已在使用的輸入加入控制器、鍵盤或滑鼠支援。角色會保留 Joystick Controlled 的移動設定。跳躍會保留 Jump with Button 的設定。自訂觸控動作也會保留原有的行為連線。
每一列都會將現有的 Input 連接到所選 Device 的 Mapped Control。你可以選取輸入的物件,或從支援的行為拖曳 Input 輸出。如果同一個動作要支援多種裝置,請新增更多列。
原本的觸控控制仍會繼續運作。
為現有搖桿加入控制器
從已使用 Joystick Controlled 的角色開始。讓 Object A 保持設為該搖桿,並讓 Object B 保持設為你的角色。
在此圖中,REUSE 標示你現有的行為。綠色箭頭表示將資料拖曳到屬性中。白色連線用於連接行為。這兩個行為都會在 Scene 啟動時開始,因此此範例不需要在兩者之間建立白色連線。
- 新增 Map Control Inputs。將 Player 保持為 1,並設定為在 Scene 啟動時開始。
- 選取 Map Control Inputs,開啟其屬性。
- 將 Joystick Controlled 上的綠色輸出圖示拖曳到第一列的 Input。從輸出清單中選擇 Input。
- 將 Device 保持為 Controller,並將 Mapped Control 設為 Left Stick。在 Name (optional) 中輸入 Move。
- 點選 + Add Input,並在彈出視窗中選擇 Keyboard。將相同的 Joystick Controlled · Input 拖曳到這一列。
- 將第二列的 Mapped Control 設為 Arrow Keys。名稱也填入 Move。
拖曳時,請使用來源行為上的綠色圖示。接收輸入欄位內的綠色按鈕會建立 Change Input Field 行為。
GIF 顯示第一個 Move 列:將搖桿的輸出拖曳到 Input,然後從清單中選擇 Input。其 Device 為 Controller,Mapped Control 為 Left Stick。Keyboard 列也使用相同的操作方式。
連接支援的控制器後,播放你的 Project。移動左搖桿時,角色應會使用相同的 Joystick Controlled 設定移動。也試試方向鍵和畫面上的搖桿。行走速度、加速度、啟用方向、旋轉和動畫仍由 Joystick Controlled 控制。
Input 用來識別你要重複使用的控制項。 在此例中,它識別的是 Object A,也就是搖桿。即使你還沒移動搖桿,它就已經可用。角色的 objectB_ID、搖桿的 x 和 y,以及白色事件連線,各自用途不同。此對應請選擇 Input。
屬性
兩列都重複使用同一個搖桿。Controller 列讀取 Left Stick;Keyboard 列讀取 Arrow Keys。
點選 + Add Input,先選擇 Controller、Keyboard 或 Mouse,再新增一列。接著 Mapped Control 會顯示與該裝置相容的選項。之後也可以變更該列的 Device。
| 屬性 | 設定內容 |
|---|---|
| Player | 正整數玩家編號。預設為 1。Controller 列會讀取指派給此玩家的控制器。若要設定另一位玩家的控制項,請使用獨立的 Map Control Inputs 行為,並指定 Player 2。 |
| Input | 選取按鈕或搖桿物件,或從支援的行為拖曳 Input。新列預設為空白。對於 Jump with Button 和 Shoot with Button,Input 指的是它們的按鈕,而不是角色。 |
| Device | Controller、Keyboard 或 Mouse。此選項會將 Mapped Control 篩選為該裝置的控制項。變更時會保留 Input 和名稱,並為新裝置選取相容的控制項。 |
| Mapped Control | 提供輸入的實體控制項。可選項目取決於 Device 和所選的 Input。新的按鈕列會依裝置預設為 Bottom Button (A / ×)、Space 或 Left Mouse Button。選取搖桿時,會顯示同一裝置中相容的移動控制項。 |
| Name (optional) | 供 Controls 疊加層使用的標籤,例如 Move、Jump 或 Shoot。預設為空白。名稱不會改變遊戲玩法。 |
| + Add Input | 開啟含有 Controller、Keyboard 和 Mouse 的彈出視窗。選擇其中一個裝置,即可新增該裝置的列。關閉彈出視窗則不會新增任何項目。使用多列搭配同一個 Input,即可為同一個動作提供多種替代控制方式。 |
| Remove Input | 移除該列。其他列仍會提供各自的替代控制方式。 |
| Up Key、Right Key、Down Key、Left Key | 當 Mapped Control 設為 Custom Movement Keys 時顯示。為每個方向選擇一個按鍵。預設值分別為 Up Arrow、Right Arrow、Down Arrow 和 Left Arrow。 |
相容的輸入
| 重複使用的輸入 | 相容的 Mapped Control 選項 |
|---|---|
| 搖桿物件;Joystick Controlled;Joystick Input;方向搖桿行為 | Left Stick、Right Stick、D-pad、WASD、Arrow Keys、Custom Movement Keys、Mouse Movement。 |
| 按鈕物件;Jump with Button;Shoot with Button;物件上的 Started Touching、While Touching 或 Stopped Touching | 控制器正面按鈕、肩部按鈕、扳機、搖桿按壓、Menu 或 Options;個別鍵盤按鍵;滑鼠按鈕;個別捲動方向。 |
| 使用單一明確按鍵的 Keyboard Event | 相同的按鈕替代控制項。原有的按下、按住或放開事件仍會使用。 |
| 使用 On Left Click、On Right Click 或單一指定 On Scroll 方向的 Mouse Event | 相同的按鈕替代控制項。捲動方向會提供短暫脈衝。 |
| 使用 On Move 的 Mouse Event | 搖桿所列出的方向控制替代項。 |
滑鼠按鈕選項包括 Left Mouse Button、Right Mouse Button、Middle Mouse Button、Mouse Back Button 和 Mouse Forward Button。滾輪選項包括 Scroll Up、Scroll Down、Scroll Left 和 Scroll Right。裝置必須支援你選擇的控制項。
Mouse Movement 提供相對移動量,並會在停止移動時回到中立狀態。你原有的搖桿閾值仍會套用。設定閾值時,請測試滑鼠的小幅移動。
Any 按鍵事件和 On Sequence 不會提供單一可對應的按鍵。滑鼠連線事件以及設為 Any 的 On Scroll,不會提供單一可對應的滑鼠動作。請先選擇明確且受支援的輸入。
對應的按鈕可以觸發物件原有的按下、按住和放開行為。它會使用物件中心作為觸控座標。滑動、手指路徑和拖曳距離需要各自的移動邏輯。遇到這些情況時,請將 Controller Event 加入自訂 Behavior Tree,並連接到適合遊戲的動作。
新增跳躍或自訂按鈕動作
若使用 Jump with Button,請點選 + Add Input,選擇 Controller,再將其 Input 拖曳到該列。選擇 Bottom Button (A / ×),並將名稱設為 Jump。原有的跳躍次數、蹬牆跳設定、力度和動畫都會繼續套用。
若使用自訂觸控按鈕,請從 Started Touching、While Touching 或 Stopped Touching 拖曳 Input。這些行為指的是同一個所選物件的輸入。將該物件對應到按鈕後,你現有的按下、按住和放開動作就能回應替代按鈕。
多個按鈕來源可以同時維持按住狀態。放開其中一個來源時,只要另一個來源仍處於按住狀態,動作就會繼續維持。
執行與輸出
Map Control Inputs 啟動時會註冊各列。如果有白色執行連線接入,則會在該連線執行時註冊。其底部的白色事件連線會在註冊完成後執行一次。
之後使用對應的控制項時,原有輸入行為會照常產生事件和值。不需要每一影格都執行 Map Control Inputs。停用它會移除其對應設定。遊戲暫停期間,以及為重新綁定而擷取輸入時,都不會觸發對應的遊戲動作。
| 輸出 | 類型 | 意義 |
|---|---|---|
mappingCount | 數字(整數) | 此執行所註冊的已設定列數。此數量不代表裝置已連線,也不保證每一列都有可用的輸入。 |
玩家與 Controls 疊加層
玩家編號用來識別控制器的指派對象。第一個可用的控制器會自動指派給 Player 1。你可以使用 Assign Controller 或 Controls 疊加層,選擇每位玩家所使用的已連線控制器。鍵盤和滑鼠是共用的實體裝置,因此請在 Project 中設定多人遊戲時的使用方式。
編輯器會為此設定建立一個可編輯的 Controls 疊加層。它包含玩家選擇器、已連線控制器的指派功能、Controller/Keyboard/Mouse 分頁,以及所選裝置的綁定清單。控制器示意圖會標示選取的控制項。未使用的列和不必要的頁面控制項會保持隱藏。你可以在自己的選單中使用 Load Overlay 開啟它。如果 Controls 已是 Scene 名稱,產生的疊加層會使用帶有編號的名稱。
疊加層會在每列所屬的裝置類別中變更相容的控制項。Rebind Input 會在你自己的 UI 中提供相同操作。儲存的選擇會依 Project、玩家和綁定項目區分。控制器替代項和鍵盤替代項會保留在不同的列中。
請先透過平台支援的設定方式連接或配對硬體。疊加層會從已連線的裝置中選擇,不會提供 Bluetooth 配對功能。
檢查設定
- 角色完全不動: 檢查 Input 是否指向搖桿、對應是否已啟動,以及控制器是否已指派給所選的 Player。
- 下拉選單中沒有 Left Stick: 將 Device 設為 Controller,並選擇搖桿或移動類型的 Input。按鈕輸入只會提供按鈕控制項。
- 自訂滑動動作不像觸控時一樣運作: 使用 Controller Event 明確建立該動作的控制器版本。對應按鈕只會提供按鈕狀態。
- 第二位玩家控制了第一位角色: 檢查該列的 Input Object 和 Player 指派。
為動作加入震動
在會觸發回饋的遊戲事件或動作後加入 Vibrate。保留原有接入該動作的白色執行連線,然後將動作連接到 Vibrate。
將 Vibrate 設為 Controller,並選擇與 Map 相同的 Player。支援的實體控制器或已配對的 iPhone 會收到震動脈衝。短促的按鈕回饋可先試用 Intensity 70% 和 Duration 150 ms。
對應的觸控、鍵盤或滑鼠替代輸入都可以觸發相同的遊戲動作。震動會使用選定的目標裝置和玩家。不需要新增對應列,也不會在手機配置中加入按鈕。

