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