c# - 与编辑器 Unity 2D 相比,玩家在构建中的移动速度更快
问题描述
我的问题和标题一样。与我在编辑器中玩游戏时相比,当我构建游戏时,我的玩家和敌人的移动速度都快得多。我在网上看过,但大多数论坛页面都说将运动乘以 Time.deltaTime,但由于某种原因,这对我不起作用,因为即使我重新构建游戏运动也更快。如果有帮助,我的角色和敌人都会被 Rigidbody2D.MovePosition 移动。我认为我需要限制帧速率,以便一切都变慢,但我不确定。如果你认为我应该这样做,我会怎么做?提前致谢。
敌人和玩家都使用它来移动:
GetComponent<Rigidbody2D>().MovePosition(transform.position + move * speed * Time.deltaTime);
如果有帮助,“移动”是 Vector3 坐标,玩家角色的速度设置为 30。每次进行更改后,我都会单击“构建并运行”。
解决方案
您的代码是在 FixedUpdate() 还是 Update() 中?物理代码应该在 FixedUpdate() 中。注意我将 Time.deltaTime 更改为 Time.fixedDeltaTime
void Update() {
//Your Non Physics Code
}
void FixedUpdate() {
//Your Physics code aka
GetComponent<Rigidbody2D>().MovePosition(transform.position + move * speed * Time.fixedDeltaTime);
}
推荐阅读
- apache-nifi - 如何重命名 NiFi 属性
- mysql - MySQL db 报告 prod 和 local 上表的总大小有很大不同
- javascript - 启用将 ImageData 从 CanvasRenderingContext2D 缩放到另一个
- python - TypeError:对象函数不能在等待表达式中使用
- vue.js - 父绑定布尔但子接收数字
- python - 如何解决 buildozer md5sum 错误?
- keras - 预训练嵌入层:tf.constant,形状不受支持
- reactjs - “警告:无法对未安装的组件执行反应状态更新”但是这些方法都不起作用
- ios - NSLayoutManager 在首次加载时提供了错误的 lineFragmentUsedRect
- android - 自定义图像,顶部带有动态文本,带有背景