我不明白为什么,但是当我在Unity3D的时间设置中增加Fixed TimeStep时,我在Android上只有一个糟糕的帧问题。
在iOS中,我有更好的表现,但Android动画非常糟糕..
有人可以告诉我为什么增加固定时间步有FPS的问题,但是在Android上,而不是在iOS上。
答案 0 :(得分:3)
60(Hz)的固定时间步长意味着Unity保证FixedUpdate方法每秒运行多次,无论帧速率如何。 FixedUpdate可以设置为每帧运行多次。
但是,您不能强制CPU每帧/秒执行更多操作。最终这会影响帧速率,因为没有足够的时间在必要的时间内计算和渲染帧。
例如,要获得每秒60帧的常量,必须计算每帧,并在0.01666秒的时间窗口内渲染。如果计算和渲染需要0.017秒,Unity将不再渲染60 fps。如果启用垂直同步(因为它在移动设备上),每帧的恒定时间刚好超过0.01666意味着帧速率将是30 fps(不是55或其他)。因此,在移动设备上,您更有可能注意到每帧不断超过0.01666时间的效果。
如果每秒运行足够的FixedUpdate迭代,则应用程序需要更多计算,因此每帧需要更长的时间。最终,每帧的FixedUpdate迭代次数(加上渲染所需的时间)不再在0.01666秒内完成,这就是你所看到的帧速率下降。