問題描述
在看視頻教程時,看到視頻中為實現跳躍功能,將向上按鍵的檢測放在了FixedUpdate
中,但是實際操作時,經常會遇到按了沒反應。
void FixedUpdate() {
if (Input.GetKeyDown(KeyCode.UpArrow)) {
GetComponent<Rigidbody2D>().AddForce(new Vector2(0, Jumpforce));
}
}
解決方法
將按鍵檢測放在Update
中即可
原因分析
因為FixedUpdate存在漏幀的情況,它是基于秒的,或者準確的說是基于物理步更新,放在物理步的函數中處理本身就是錯誤的做法
參考文章
[1] 跑酷游戲的一些bug總結(濫用FixedUpdate的坑)