问题描述
在看视频教程时,看到视频中为实现跳跃功能,将向上按键的检测放在了FixedUpdate
中,但是实际操作时,经常会遇到按了没反应。
void FixedUpdate() {
if (Input.GetKeyDown(KeyCode.UpArrow)) {
GetComponent<Rigidbody2D>().AddForce(new Vector2(0, Jumpforce));
}
}
解决方法
将按键检测放在Update
中即可
原因分析
因为FixedUpdate存在漏帧的情况,它是基于秒的,或者准确的说是基于物理步更新,放在物理步的函数中处理本身就是错误的做法
参考文章
[1] 跑酷游戏的一些bug总结(滥用FixedUpdate的坑)
网友评论