You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity新输入系统鼠标左键释放事件未触发问题求助

鼠标左键攻击在Unity新输入系统中释放无触发的问题原因分析

我在使用Unity新输入系统实现鼠标左键攻击功能时遇到了问题:已经创建了对应的Action,按下左键时事件正常触发且value.isPressed返回true,但释放左键时完全没有事件触发,value.isPressed始终不会返回false。但用完全相同的逻辑实现的Sprint功能(按下返回true,释放返回false)却正常工作,相关代码如下:

public void OnSprint(InputValue value)
{
    SprintInput(value.isPressed);
}

public void OnAttack(InputValue value)
{
    AttackInput(value.isPressed);
}

出现这种差异的核心原因几乎都是输入Action的绑定类型设置不一致,具体排查点如下:

  • Action的行为类型设置错误:
    Sprint功能正常,说明它的Action类型是Value或者Button(这两种类型会在按键按下和释放时都触发回调)。而你的Attack Action大概率被设成了Button Press(仅在按键按下瞬间触发一次,释放时不会触发)。去Input Action编辑器里检查Attack Action的Action Type,改成和Sprint一样的类型即可。
  • 绑定的触发方式不对:
    检查Attack Action对应的鼠标左键绑定,是否在绑定设置里选了Press Only而不是Press And Release。有些绑定默认可能只监听按下事件,需要改成同时监听按下和释放的触发模式。
  • Action的交互设置问题:
    如果给Attack Action添加了Press交互但没配置释放触发,或者误加了只触发一次的交互类型,也会导致释放时无回调。对比Sprint Action的交互列表,把Attack的交互设置对齐。

内容的提问来源于stack exchange,提问作者ViktorMS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:10:35