5 回答

TA貢獻1712條經(jīng)驗 獲得超3個贊
您可能嘗試導(dǎo)入新的輸入系統(tǒng)包以實現(xiàn)多個輸入設(shè)備的兼容性。這些類型的錯誤是由于新舊輸入系統(tǒng)包之間的沖突造成的,并且可能在最新的更新中得到解決。
要解決此問題,請轉(zhuǎn)到“編輯”?->?“項目設(shè)置”?->?“播放器”->?“配置”下的“其他設(shè)置”下的“活動輸入處理”選項。選擇兩者。Unity 將重新啟動?,F(xiàn)在你的問題應(yīng)該解決了。您將能夠同時使用舊的輸入系統(tǒng)包和新的輸入系統(tǒng)包。

TA貢獻1797條經(jīng)驗 獲得超4個贊
在輸入調(diào)試器中檢查是否存在惡意用戶
我有非常相似的癥狀(輸入系統(tǒng)會隨機停止發(fā)送回調(diào))。當(dāng)我打開輸入調(diào)試器時,它正在注冊按鍵,但我的腳本中從未調(diào)用回調(diào)。
重新啟動 Unity 沒有幫助。重新啟動沒有幫助。
我還在輸入調(diào)試器中發(fā)現(xiàn)輸入系統(tǒng)中有 2 個“用戶”,并且(通過一次禁用場景中一個游戲?qū)ο蟮倪^程)發(fā)現(xiàn)我不小心將輸入動作資源的另一個副本附加到場景中的另一個游戲?qū)ο?,并?Unity 將此另一個對象注冊為第二個玩家或“用戶”,它被分配了我試圖捕獲的所有輸入動作綁定。
流氓操作資產(chǎn)本質(zhì)上是攔截操作,防止在預(yù)期腳本上調(diào)用回調(diào)。我不知道這是否是您的特定問題,但也許它會幫助其他人(像我一樣)花費數(shù)小時瀏覽論壇,尋找解決這個難以捉摸的問題的方法。
判斷您是否遇到相同問題的一個簡單方法是打開輸入調(diào)試器并查看所需的操作是否實際映射到感興趣的用戶。
輸入調(diào)試器的屏幕剪輯:
對我來說,有一個意外的用戶#1,并且只有一個用戶(不是預(yù)期的用戶)實際上擁有綁定到所需操作的密鑰

TA貢獻1805條經(jīng)驗 獲得超9個贊
發(fā)布以防其他人遇到這個問題,因為這解決了我的問題。確保調(diào)用 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();

TA貢獻1817條經(jīng)驗 獲得超14個贊
我遇到了類似的問題,完全按照問題中描述的步驟重現(xiàn)。就我而言,我忘記設(shè)置控制方案。
添加后問題就解決了。
為此:
打開您的輸入操作資產(chǎn)。
在左上角選擇一個控制方案。(例如,鍵盤)(如果您一開始就沒有添加控制方案,您的問題可能與我的不同)
右鍵單擊> 編輯控制方案。?
單擊加號將控制方案添加到列表中。
選擇您要添加的控制方案。(在本例中為鍵盤)?
你已經(jīng)準(zhǔn)備好了。保存所有內(nèi)容,問題就應(yīng)該得到解決。
玩你的游戲,它應(yīng)該可以工作。

TA貢獻1796條經(jīng)驗 獲得超7個贊
我不知道這是否對你有用,但它對我有用,而且我也遇到了同樣的問題。
我創(chuàng)建了 2 個控制方案。手機和電腦。移動設(shè)備需要觸摸屏,PC 需要鍵盤和鼠標(biāo)。這樣做使我的移動輸入事件停止觸發(fā)。因此,將游戲手柄添加到我的移動控制方案中可以讓事件再次觸發(fā)。
太長了。檢查您的控制方案,確保它允許您綁定的輸入。
- 5 回答
- 0 關(guān)注
- 220 瀏覽
添加回答
舉報