輸入系統包簡介
驗證環境
- 窗戶
-
- 視窗 11
- 統一編輯器
-
- 2020.3.25f1
關於輸入系統包
在 Unity 的早期,我們使用輸入管理員作為接收使用者輸入的機制。 然而,在遊戲平臺多樣化的環境下,輸入管理器已經過時了。 添加了管理用戶輸入的新機制:輸入系統管理器。
截至 2022 年,新的「輸入系統包」和「輸入管理器」都可用以實現相容性。 如果你有一個舊專案,你可以按原樣使用「輸入管理器」, 我認為它將來會過渡到新的「輸入系統包」 ,因此在新專案中 使用輸入系統包。
本節介紹如何設置它。
安裝輸入系統包
從 Unity 編輯器 2020.3.25f1 開始,輸入系統包作為最初未安裝的包進行管理。 要安裝套件,請執行以下操作:
創建專案並啟動 Unity 編輯器後,從功能表中選擇視窗>包管理員。
出現「包管理器」螢幕時,從包中選擇「Unity 註冊表」。。
如果向下滾動左側的清單,則有「輸入系統」 ,因此請選擇它並按下右下角的「安裝」 按鈕。
安裝后,它將顯示為已安裝,因此請關閉對話方塊。
如果安裝套件後顯示以下對話框,請按兩下「是」按鈕以自動配置下一個「啟動輸入系統軟體包」。 在這種情況下,Unity 編輯器將重新啟動。
This project is using the new input system package but the native platform backends for the new input system are not enabled in the player settngs. This means that no input from native devices will come through.
Do you want to enable the backends? Doing so *RESTART* the editor and will *DISABLE* the old UnityEngine.Input APIs.
啟動輸入系統包
由於我剛剛安裝了該軟體包,因此我目前有一個過時的輸入管理器處於活動狀態。 將其切換到輸入系統包。
從功能表中選擇編輯>項目設置。
當「項目設置」對話框打開時,從左側功能表中選擇「播放器」。
在下面的選項卡中,選擇PC,Mac...。 選擇「設置」選項卡,然後在底部的組中展開「更多設置」。
如果向下滾動到一定程度,則會在「設置」類別中找到一個名為“正在使用的輸入處理”的專案,您可以在其中選擇“輸入系統包(新)”。 您可以暫時啟動兩者,但這很混亂,因此對於新專案,最好僅使用輸入系統包。
進行更改後,將出現以下對話框,因此請按兩下“應用”以重新啟動Unity編輯器。
就是這樣,你完成了!
關於在代碼輸入中使用「UnityEngine.InputSystem」命名空間導致錯誤的問題
我目前還沒有輸入代碼,所以不會是錯誤,
在輸入代碼(例如 Visual Studio)時嘗試使用該命名空間時 UnityEngine.InputSystem
,您可能會收到一條錯誤消息,指出命名空間不存在。
例如,如果在安裝“輸入系統包”之前創建腳本。
這是因為項目 UnityEngine.InputSystem
沒有對 的引用。
要解決此問題,請執行以下操作:
從功能表中選擇編輯>首選項。
從左側功能表中選擇「外部工具」 然後按下「重新生成項目檔」 按鈕。
通過這樣做,Visual Studio UnityEngine.InputSystem
將添加到引用中。
此外,代碼沒有錯誤。
將UI中使用者輸入的接受更改為輸入系統包
如果不使用 Unity UI,則此欄位(例如輸入欄位或下拉列表)無關緊要,應忽略。
在檢視中放置輸入欄位、下拉清單等時,將自動創建畫布並將 UI 物件放置在那裡。 同時,創建一個名為“事件系統”的物件。 這是一個對象,用於管理在UI中完成某些輸入時發生的情況。
此事件系統最初使用較舊的輸入管理員運行。 如果僅啟用輸入系統包,則 UI 將無法按原樣工作,因此需要更改為輸入系統包。
若要進行更改,請先選擇“事件系統”。
然後,檢查器的「獨立輸入模組」中會顯示警告。
按兩下取代為輸入系統 UIInput模組「按鈕,將」獨立輸入模組「替換為」輸入系統 UI 輸入模組”
遊戲上的UI現在應正確接受輸入。