原来使用的是unity自带的Input,但是对手柄支持不好
所以网上查了有个InputSystem插件,手柄支持很好,但是不能两个按键同时输入
比如原来键盘 Up键和Right同时按下,角色会往45度方向走,手柄也一样
但是用了InputSystem后,无法同时按下,他只感应先按下的,得抬起按键后,另一个才会有用,也就是没法45度方向走了,要么向上走,向上按钮松开后才会往右走
原来使用的是unity自带的Input,但是对手柄支持不好
所以网上查了有个InputSystem插件,手柄支持很好,但是不能两个按键同时输入
比如原来键盘 Up键和Right同时按下,角色会往45度方向走,手柄也一样
但是用了InputSystem后,无法同时按下,他只感应先按下的,得抬起按键后,另一个才会有用,也就是没法45度方向走了,要么向上走,向上按钮松开后才会往右走
在 Unity 中,打开 Package Manager,搜索并安装 Input System 插件。
在项目中创建一个新的 C# 脚本,并将其添加到你想要检测输入的 GameObject 上。
在脚本中,你需要添加以下代码:
using UnityEngine;
using UnityEngine.InputSystem;
public class YourScriptName : MonoBehaviour
{
private InputAction comboAction;
private void OnEnable()
{
comboAction = new InputAction(binding: "<Keyboard>/a+<Keyboard>/b", type: InputActionType.Button, "ComboAction");
comboAction.Enable();
comboAction.performed += OnComboAction;
}
private void OnDisable()
{
comboAction.Disable();
comboAction.performed -= OnComboAction;
}
private void OnComboAction(InputAction.CallbackContext obj)
{
Debug.Log("Both keys pressed!");
}
}
在这个脚本中,我们使用 InputAction 类来定义一个名为“ComboAction”的组合按键,该组合按键是键盘上的 A 和 B 键。我们还定义了一个 OnComboAction() 方法来处理当组合按键被按下时的行为,这里只是输出了一个日志信息。
在 Unity 编辑器中,选择你想要检测输入的 GameObject,然后将该脚本拖放到该 GameObject 上。
运行游戏,按下键盘上的 A 和 B 键,你应该会看到输出的日志信息。
这就是如何使用 Unity InputSystem 插件检测两个按键同时输入的方法。你可以根据需要修改组合按键的定义来检测其他按键组合的输入情况。