Unity Input System无法检测按键输入

Unity官方手册链接:Input System | Input System | 1.5.0

问题描述:按照官方手册指定步骤安装后,Unity项目里仍无法检测到按键输入,即使官方样例也无法检测到按键输入。

导致原因:Input System Package导致新版Input System无法检测按键。

解决方案:需要将Input System Package删除。

 在项目中找到InputSystem.inputsettings文件,将此文件删除即可。

 删除完成后Input System Package面板将变为如下样式:

 此时新版Input Syetem即可检测到按键输入了。

Unity中,Input System 提供了一个更现代、高效的方式来处理输入管理,包括键盘按键事件。要获取按键抬起事件,你需要按照以下步骤操作: 1. **启用Input System**:首先,在项目设置(Edit > Project Settings > Input)中启用Input System,并选择支持的平台。 2. **添加Input Actions**:在`Assets\Standard Assets\Input\Actions`文件夹下找到并拖拽`Button`动作到`Action Library`面板,这代表按下和抬起的按键。 3. **绑定按键**:右键点击`Button`动作,选择`Create Event`,然后创建一个新的`On Pressed`和`On Released`事件。分别给这两个事件分配你想要监听的按键。 4. **编写脚本**:创建一个新脚本,如C#的`PressableButtonBehaviour`,继承自`InputAction.CallbackContext`。在这个脚本中,重写`Execute()`函数,当`On Released`事件触发时,检查是否是对应的按键抬起: ```csharp using UnityEngine; using UnityEngine.InputSystem; public class PressableButtonBehaviour : MonoBehaviour, IInputActionHandler<Button> { [SerializeField] private Button action; public void OnExecute(Button fromEvent) { if (fromEvent.phase == InputPhase.Ended && fromEvent.Ready()) { // 当按键从按下状态变为抬起时,这里可以执行相应的逻辑 Debug.Log($"Button '{action.name}' has been released."); } } public void OnCancel(Button fromEvent) { } } ``` 5. **组件应用**:将这个脚本附加到你想监听按键的UI元素上,例如`GameObject`的`UI Canvas`组件上。 当你按下并释放指定的按键时,`On Execute`函数会被调用,你可以在这里检查按键是否已经抬起并执行相应操作。记得在`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追风渣凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值