提问人:Theo Legrand 提问时间:7/26/2023 更新时间:7/26/2023 访问量:110
键绑定无法识别,因为它们应该 Unity 输入系统
Keybinds not recognized as they should Unity Input System
问:
我目前正在为 fps 游戏开发简单的运动,现在我最大的问题是以下几点: 通过以下所有教程,这些教程解释了如何在 C# 类中按下某些键绑定时触发移动动作,我总是会遇到同样奇怪的错误,即使我写了,例如: “Keyboard.current.zKey.isPressed”,如果我按“Z”,它不会发生任何事情,但它适用于“W” 请注意,我正在使用 ZQSD 键盘而不是 WASD; 这就像 unity 会自动将 ZQSD 渲染为 WASD。
我已经尝试更改输入管理器键绑定设置,即使我使用的是输入系统。 我还尝试通过经典的窗口选项更改键盘排列,结果很奇怪?即使我的 Z 现在应该是 W ??
提前感谢我可以使用的任何建议。
答:
在Unity论坛的帖子中,有人遇到了同样的问题,一位论坛成员回复道:
不支持任何特定的键盘布局。它的工作方式是按物理位置标识密钥。美式键盘布局仅用于为按键命名。因此,“A”键始终是 Caps Lock 键右侧的键,无论该键根据当前键盘实际生成哪种字符。这就是导致您的朋友看到的稳定 WASD 行为的原因。
您可以通过生成的文本字符进行绑定。在控件选择器中,您可以在“按字符映射到键”下找到它。
总之:
输入系统根据密钥的物理位置识别密钥,这可以通过控制选择器进行更改,方法是选择“按字符映射到密钥”而不是“按密钥的位置(使用美国布局)”。
通过脚本的另一种方法是:
<Keyboard>/#{w}
有关更多信息,请参阅帖子:
https://forum.unity.com/threads/new-input-system-which-keyboard-layouts-are-supported.912074/
评论