我正在使用 Unity 为 iOS 设备创建游戏,其中有一个骰子(压缩圆柱体形状)对象。我创建了一个名为“swipe”的自定义函数,在其中我通过计算起始位置和结束位置来确定滑动方向。
我已经对这个物体施加了力。但是当我在
Update()
调用中运行该函数时,它会显示调试消息,但物理功能不起作用,但是当我从 FixedUpdate()
调用相同的函数时,它工作得很好。
那么,我是否必须使用
FixedUpdate()
来进行所有物理计算?
简而言之,它与每一帧的处理方式以及帧的渲染和完成速度之间的差异有关。
根据我的理解,如果你开始将物理放入 Update() 中,它可能不会在每一帧都执行,因为它正在播放,但是通过将其放入 FixUpdate() 中,它可以运行。 当应用大多数与物理相关的函数时,应该使用FixedUpdate(),因为您知道它将与Unity物理引擎同步执行。
与更新一样,它不是固定的,它基于渲染的帧数量,因此,与任何给定时间通过渲染引擎进行的工作量相关,它可能会更快或更慢。
因此,保持简单,并将物理相关代码分离到固定更新中。确保同步性。
如果您不太明白,或者可能想要更深入的答案,请查看用户 Duck 的这篇文章
http://answers.unity3d.com/questions/10993/whats-the-difference- Between-update-and-fixedupdat.html