键绑定无法识别,因为它们应该 Unity 输入系统

Keybinds not recognized as they should Unity Input System

提问人:Theo Legrand 提问时间:7/26/2023 更新时间:7/26/2023 访问量:110

问:

我目前正在为 fps 游戏开发简单的运动,现在我最大的问题是以下几点: 通过以下所有教程,这些教程解释了如何在 C# 类中按下某些键绑定时触发移动动作,我总是会遇到同样奇怪的错误,即使我写了,例如: “Keyboard.current.zKey.isPressed”,如果我按“Z”,它不会发生任何事情,但它适用于“W” 请注意,我正在使用 ZQSD 键盘而不是 WASD; 这就像 unity 会自动将 ZQSD 渲染为 WASD。

我已经尝试更改输入管理器键绑定设置,即使我使用的是输入系统。 我还尝试通过经典的窗口选项更改键盘排列,结果很奇怪?即使我的 Z 现在应该是 W ??

提前感谢我可以使用的任何建议。

C# Unity-Game-Engine 输入 键盘

评论

0赞 BugFinder 7/26/2023
我相信它总是如此。我所知道的所有基于 Unity 的游戏都告诉我错误的角色,假设我是美国人。键盘。这对哈希键来说尤其烦人

答:

0赞 Obscure021 7/26/2023 #1

Unity论坛的帖子中,有人遇到了同样的问题,一位论坛成员回复道:

不支持任何特定的键盘布局。它的工作方式是按物理位置标识密钥。美式键盘布局仅用于为按键命名。因此,“A”键始终是 Caps Lock 键右侧的键,无论该键根据当前键盘实际生成哪种字符。这就是导致您的朋友看到的稳定 WASD 行为的原因。

您可以通过生成的文本字符进行绑定。在控件选择器中,您可以在“按字符映射到键”下找到它。


总之:

输入系统根据密钥的物理位置识别密钥,这可以通过控制选择器进行更改,方法是选择“按字符映射到密钥”而不是“按密钥的位置(使用美国布局)”。

通过脚本的另一种方法是:

<Keyboard>/#{w}

有关更多信息,请参阅帖子:

https://forum.unity.com/threads/new-input-system-which-keyboard-layouts-are-supported.912074/