Unity 接收不到键盘按下的事件

问题描述

在看视频教程时,看到视频中为实现跳跃功能,将向上按键的检测放在了FixedUpdate中,但是实际操作时,经常会遇到按了没反应。

void FixedUpdate() {
    if (Input.GetKeyDown(KeyCode.UpArrow)) {
        GetComponent().AddForce(new Vector2(0, Jumpforce));
    }
}

解决方法

将按键检测放在Update中即可

原因分析

因为FixedUpdate存在漏帧的情况,它是基于秒的,或者准确的说是基于物理步更新,放在物理步的函数中处理本身就是错误的做法

参考文章
[1] 跑酷游戏的一些bug总结(滥用FixedUpdate的坑)

你可能感兴趣的:(Unity 接收不到键盘按下的事件)