亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

新的輸入系統不再觸發任何東西

新的輸入系統不再觸發任何東西

C#
HUX布斯 2023-07-22 15:41:12
TL;DR:輸入系統幾天前工作了,不再觸發任何東西,暫停。幾天前我嘗試了新的輸入系統,這真的很棒!我做了很多事情,試圖了解使用它的最佳方式,最后,我的角色到處跳躍和移動,這太酷了!然后,我將代碼合并到我們的開發分支中并上床睡覺。今天,我想繼續我的代碼,但是我的角色不再移動,操作也沒有被觸發(即使在調試器中檢測到輸入),我真的不知道為什么。要么代碼合并覆蓋了一些重要的設置(我知道你在想什么,是的,&ldquo;主動輸入處理&rdquo;設置為&ldquo;兩者&rdquo;,我嘗試只運行預覽),要么我在小測試期間做了一些重要的事情,但我沒有意識到。所以我決定嘗試在一個全新的項目上重現我的步驟,也許你們可以幫助我弄清楚我做錯了什么?1/ 創建一個新的 2D 項目(通過 Hub)2/安裝最新的軟件包(版本0.9.0)3/ 在該消息提示上單擊&ldquo;是&rdquo;以激活設置中的新輸入管理4/ 重新啟動 Unity Editor,因為即使消息說會重新啟動,它也不會重新啟動,然后檢查項目設置(是的,它位于&ldquo;Both&rdquo;,是的,我的腳本運行時版本是 4.0)5/ 創建一個新的 GameObject 并在其上添加 PlayerInput6/ 單擊&ldquo;打開輸入設置&rdquo;并創建一個&ldquo;InputSettings&rdquo;資源7/ 單擊&ldquo;創建操作...&rdquo;來創建我的 ActionMap 資源8/ 在我的&ldquo;Player&rdquo;ActionMap 上創建一個&ldquo;TestAction&rdquo;并將其設置為鍵&ldquo;t&rdquo;9/ 創建一個新腳本&ldquo;TestScript&rdquo;,其中包含 OnTestAction() 方法(僅記錄&ldquo;test&rdquo;)并啟用測試映射/操作(只是為了確定):using UnityEngine;using UnityEngine.InputSystem;using UnityEngine.InputSystem.PlayerInput;public class TestScript : MonoBehaviour{? ? void Start()? ? {? ? ? ? InputActionMap playerActionMap = GetComponent<PlayerInput>().actions.GetActionMap("Player");? ? ? ? playerActionMap.Enable();? ? ? ? playerActionMap.GetAction("TestAction").Enable(); //Just to be sure? ? }? ? public void OnTestAction()? ? {? ? ? ? Debug.Log("test");? ? }}10/像瘋子一樣按下&ldquo;Play&rdquo;并發送&ldquo;T&rdquo;來嘗試顯示調試(請注意,在調試器中,創建了一個用戶,檢測到我的&ldquo;t&rdquo;按下,我的 TestAction 存在并映射到&ldquo;t&rdquo;鍵上,但沒有顯示調試
查看完整描述

5 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

您可能嘗試導入新的輸入系統包以實現多個輸入設備的兼容性。這些類型的錯誤是由于新舊輸入系統包之間的沖突造成的,并且可能在最新的更新中得到解決。

要解決此問題,請轉到“編輯”?->?“項目設置”?->?“播放器”->?“配置”下的“其他設置”下的“活動輸入處理”選項。選擇兩者。Unity 將重新啟動?,F在你的問題應該解決了。您將能夠同時使用舊的輸入系統包和新的輸入系統包。


查看完整回答
反對 回復 2023-07-22
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

在輸入調試器中檢查是否存在惡意用戶

我有非常相似的癥狀(輸入系統會隨機停止發送回調)。當我打開輸入調試器時,它正在注冊按鍵,但我的腳本中從未調用回調。

重新啟動 Unity 沒有幫助。重新啟動沒有幫助。

我還在輸入調試器中發現輸入系統中有 2 個“用戶”,并且(通過一次禁用場景中一個游戲對象的過程)發現我不小心將輸入動作資源的另一個副本附加到場景中的另一個游戲對象,并且 Unity 將此另一個對象注冊為第二個玩家或“用戶”,它被分配了我試圖捕獲的所有輸入動作綁定。

流氓操作資產本質上是攔截操作,防止在預期腳本上調用回調。我不知道這是否是您的特定問題,但也許它會幫助其他人(像我一樣)花費數小時瀏覽論壇,尋找解決這個難以捉摸的問題的方法。

判斷您是否遇到相同問題的一個簡單方法是打開輸入調試器并查看所需的操作是否實際映射到感興趣的用戶。

輸入調試器的屏幕剪輯:


http://img1.sycdn.imooc.com//64bb888f0001bfe605880245.jpg

對我來說,有一個意外的用戶#1,并且只有一個用戶(不是預期的用戶)實際上擁有綁定到所需操作的密鑰



查看完整回答
反對 回復 2023-07-22
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

發布以防其他人遇到這個問題,因為這解決了我的問題。確保調用 Enable() 來啟動路由事件。


//Create a and set the reference

private InputControls _inputMapping;

private void Awake() => _inputMapping = new InputControls();


//Route and Un-route events

private void OnEnable() => _inputMapping.Enable();

private void OnDisable() => _inputMapping.Disable();


查看完整回答
反對 回復 2023-07-22
?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

我遇到了類似的問題,完全按照問題中描述的步驟重現。就我而言,我忘記設置控制方案

添加后問題就解決了。

為此:

  1. 打開您的輸入操作資產

  2. 在左上角選擇一個控制方案。(例如,鍵盤)(如果您一開始就沒有添加控制方案,您的問題可能與我的不同)

  3. 右鍵單擊> 編輯控制方案。?

  4. 單擊加號將控制方案添加到列表中。

  5. 選擇您要添加的控制方案。(在本例中為鍵盤)?

  6. 你已經準備好了。保存所有內容,問題就應該得到解決。

  7. 玩你的游戲,它應該可以工作。


查看完整回答
反對 回復 2023-07-22
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

我不知道這是否對你有用,但它對我有用,而且我也遇到了同樣的問題。

我創建了 2 個控制方案。手機和電腦。移動設備需要觸摸屏,PC 需要鍵盤和鼠標。這樣做使我的移動輸入事件停止觸發。因此,將游戲手柄添加到我的移動控制方案中可以讓事件再次觸發。

太長了。檢查您的控制方案,確保它允許您綁定的輸入。


查看完整回答
反對 回復 2023-07-22
  • 5 回答
  • 0 關注
  • 205 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號