Unity Input System 輸入系統教學

本教學介紹 Unity 全新 Input System 輸入系統的使用方法。雖然先前的 Input System 提供開發者多種輸入設定,但是對於跨平台遊戲開發而言,需要對單機遊戲、手機遊戲、平板遊戲、遊戲主機進行不同的輸入設定。新輸入系統的設定步驟雖然稍微複雜一點,但是對於後續的擴充與維護上會帶來很大的便利性。若您有跨平台遊戲開發的需求,或希望提供玩家可自行設定輸入的選項,可參考使用新的 Input System 輸入系統。不過若是開發單一平台的遊戲,使用舊版 UnityEngine.Input API 即可。

廣泛支援各種輸入裝置,包括鍵盤、滑鼠、行動裝置的陀螺儀、加速度感應器, Switch Pro Controller 控制器、Windows MR Controller 控制器、Oculus Controller 控制器。

若您需要在 Unity 專案使用 New Input System 輸入系統,請先執行 [ Window > Package Manager ] 開啟資源包管理。

按下 Install 按鈕,安裝 Input System 輸入系統的相關檔案。

安裝後將會出現警告,提示使用 Unity new input system 資源需要重新開啟,按下 Yes 按鈕。

專案視窗,滑鼠右鍵執行 Create > Input Actions 建立新的輸入動作。

使用滑鼠雙擊,開啟 Input Actions 輸入動作編輯視窗。

新增的 Action Map 動作對應可以自行輸入需要的名稱,例如改為 "My action map" 。

先說明設定遊戲角色的移動,設定動作類型 Action Type = Value 數值。

設定控制類型 Control Type = Button 按鈕。

新增 WASD 移動

遊戲設計經常使用 WASD 與方向鍵控制物件移動,按 + 選擇 Add 2D Vector Composite 01 。

重新命名,例如 "WASD" 。

輸入 W 可以快速找到鍵 W 鍵輸入。

完成 WASD 輸入設定。

新增方向鍵移動

接著設定使用方向鍵的輸入,可選取剛建立的 WASD 按滑鼠右鍵執行 Duplicate 複製,稍後可快速修改。

輸入 Arrow 即可列出方向鍵輸入,再選擇 Up Arrow (Keyboard) 方向鍵上。

依前面步驟完成全部的方向鍵設定。

新增遊戲手把移動

接著設定遊戲手把的輸入,讓玩家使用各式手把或搖桿都可以操控遊戲。

選擇 Gamepad 遊戲手把,再選擇 Left Stick 左側搖桿。。

Unity 輸入系統可支援 Android 與 iOS 裝置使用的藍牙搖桿,以及 PS4、Xbox、Switch Pro 控制器。

新增 Jump 跳躍

選擇 Space [Keyboard] 鍵盤空白鍵。

撰寫控制腳本,程式碼的開頭請加入 usinng UnityEngine.InputSystem;

最後將此腳本套用到需要控制的物件,按下 Play 測試遊戲的輸入功能是否正常。