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

Unity无法识别键盘按键输入问题求助

Unity键盘输入无法识别的排查解决方法
  • 确保游戏窗口处于激活状态
    Unity运行时,必须点击Game视图让它获得焦点,否则键盘输入会被其他窗口(比如编辑器的Scene视图、浏览器等)拦截,这是新手最容易忽略的问题。

  • 检查脚本挂载对象状态
    确认挂载Flappy_Bird脚本的GameObject在Hierarchy面板中是激活状态(左侧复选框勾选),同时脚本组件本身的Enable选项也是开启的。

  • 验证myRigidbody变量是否正确赋值
    如果myRigidbody是public变量,检查Inspector面板中是否已拖入对应的Rigidbody2D组件;如果是通过代码获取,确保在Start()方法中完成初始化:

    private Rigidbody2D myRigidbody;
    
    void Start()
    {
        myRigidbody = GetComponent<Rigidbody2D>();
    }
    

    若变量未赋值,执行相关代码时可能抛出异常,阻断后续逻辑(虽然你的日志未显示报错,但仍需确认)。

  • 排查输入系统冲突
    前往Edit > Project Settings > Player > Other Settings,查看Active Input Handling选项:

    • 若同时启用旧的Input Manager和新的Input System,会导致输入识别异常,需仅选择其中一种(新手推荐先使用默认的Input Manager)。
  • 测试硬件与系统层面的拦截
    将代码中的KeyCode.Space替换为KeyCode.A或其他按键,运行后测试输入。若所有按键均无响应,需排查:

    • 键盘硬件是否正常(换个键盘测试)
    • 系统中是否有全局热键、输入法快捷键等拦截了按键输入
  • 简化代码隔离问题
    暂时移除Rigidbody相关代码,仅保留按键检测逻辑,确认是否能触发正确日志:

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log("Space key pressed");
        }
        else
        {
            Debug.Log("Key Stroke Not Received");
        }
    }
    

    若简化后能正常触发按键日志,说明问题出在Rigidbody相关逻辑上,可进一步排查FlapStrength变量是否赋值、Rigidbody2D的设置(比如是否被设为Kinematic)等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 02:00:06