40岁开始学习unity 2023-04-04 21:31 采纳率: 61.5%
浏览 141
已结题

Unity InputSystem 两个按键同时输入的问题

原来使用的是unity自带的Input,但是对手柄支持不好

所以网上查了有个InputSystem插件,手柄支持很好,但是不能两个按键同时输入

比如原来键盘 Up键和Right同时按下,角色会往45度方向走,手柄也一样

但是用了InputSystem后,无法同时按下,他只感应先按下的,得抬起按键后,另一个才会有用,也就是没法45度方向走了,要么向上走,向上按钮松开后才会往右走

  • 写回答

2条回答 默认 最新

  • 南波湾帅哥 2023-04-10 09:23
    关注

    在 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 插件检测两个按键同时输入的方法。你可以根据需要修改组合按键的定义来检测其他按键组合的输入情况。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月18日
  • 已采纳回答 4月10日
  • 创建了问题 4月4日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改