Unity在为不同设备构建时表现出不同的物理行为

时间:2018-02-15 10:50:05

标签: unity3d game-physics

我正在开发Unity3D中的轮盘赌(赌场风格游戏)游戏项目。 我正在围绕一个轮子转动一个球,轮子也在固定更新中在自己的轴上旋转。 我正在使用transform.RotateAround函数来围绕方向盘旋转球,我也在固定更新中降低球的速度。我在一个范围内为球分配一个随机的初始速度,使得它总是停在不同的位置时间。

出于测试目的,我将初始球速保持恒定并在统一编辑器中检查它,使得每次旋转它总是停在相同的数字上。 我将此项目构建到android和PC。虽然每次在Android和PC构建中球都停在相同的数字上,但结果在两者中都不同。 例如 - 每次球旋转时,它在android中的数字8和Pc上的数字20都停止。

有人可以告诉我一些在不同设备上获得相同结果的方法吗?

为什么会这样?不同处理器中的统一物理行为是不同的吗? 请解释我如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

Unity有一个固定的时间步长,因此这不是人们所期望的差异的原因。物理模拟是非常复杂的事情,所以我不会假装我确切地知道为什么你会看到差异。但是,我认为这与您的计算机和更小的手机处理器之间的浮点精度差异有关。

测试此方法的一种方法是在另一台计算机上运行模拟,并将结果与​​两个当前设备进行比较。