我正在使用unity3d为有骰子(压缩圆柱形状)对象的iOS设备创建游戏。我创建了一个名为swipe的自定义函数,在其中通过从开始位置和结束位置进行计算来确定滑动方向。

我对这个物体施加了力量。但是,当我在Update()调用中运行该函数时,它会显示调试消息,但是物理方法不起作用,但是当我从FixedUpdate()调用相同的函数时,它可以完美地运行。

因此,我必须对所有的物理计算都使用FixedUpdate()吗?

谢谢。

最佳答案

简而言之,它与处理每个帧的方式以及帧渲染和完成速度之间的差异有关。

据我了解,如果您开始在Update()中添加物理特性,则可能无法在播放的每一帧都执行它,但是通过将其放入FixedUpdate()中,它可以运行。
应用大多数与物理学相关的功能时,应该使用FixedUpdate(),因为您知道它将与Unity Physics Engine同步执行。

在Update中,它不是固定的,而是基于要渲染的帧数,因此,相对于在任何给定时间通过渲染引擎进行的工作量,它可能更快或更慢。

因此,请保持简单,并将与物理相关的代码分离为FixedUpdate。确保同步性。

如果您不太了解它,或者想要更深入的答案,请查看用户Duck

http://answers.unity3d.com/questions/10993/whats-the-difference-between-update-and-fixedupdat.html

关于c# - 团结-是否有必要在固定更新中始终施加力量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21426208/

10-16 08:04