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

Unity中Horizontal Input始终为-1的技术问题求助

解决Unity Input.GetAxis异常(无输入时恒为-1)的方案

1. 检查Unity输入管理器配置

打开Edit > Project Settings > Input Manager,找到Horizontal轴:

  • 确认Negative Button仅绑定a和left,无额外误绑定
  • 调整Gravity(建议设为3,控制输入归位速度)和Dead(建议设为0.001,过滤微小输入偏差)参数
  • 同步检查Vertical轴配置,确保参数一致、无错误绑定

2. 排查硬件输入干扰

  • 更换键盘/手柄设备测试,排除硬件按键粘连、摇杆漂移问题
  • 用系统自带工具(如Windows屏幕键盘)确认A键/左箭头键未被持续触发
  • 若使用手柄,在系统设备管理器中检查摇杆输入轴是否存在偏移

3. 代码层面临时规避

若配置和硬件无问题,可在代码中添加输入阈值过滤,避免微小偏移触发误操作:

void ProcessInputs()
{
    float moveX = Input.GetAxis("Horizontal");
    float moveY = Input.GetAxis("Vertical");

    // 过滤无效微小输入
    float deadZone = 0.1f;
    moveX = Mathf.Abs(moveX) < deadZone ? 0 : moveX;
    moveY = Mathf.Abs(moveY) < deadZone ? 0 : moveY;

    print("X: " + moveX + " | Y: " + moveY);

    moveDirection = new Vector2(moveX, moveY).normalized;
}

注:此方法为临时规避,优先解决配置/硬件根源问题。

4. 处理Unity版本与缓存问题

  • 切换至Unity最新稳定版或其他稳定版本测试,排除版本bug
  • 删除项目根目录的Library文件夹,重启Unity重建缓存,避免缓存损坏导致异常

5. 排查第三方输入插件冲突

若项目使用新输入系统(Input System)或第三方输入插件:

  • 禁止同时混用旧输入系统(Input.GetAxis属于旧系统)与新输入系统,二者易产生冲突
  • 临时禁用第三方输入插件,测试输入是否恢复正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:20:41