iOS FPS低帧率时,角色移动,剖析器显示物理.模拟占用cpu时间



我们为iOS开发FPS游戏。玩家角色是来自Standard Assets (Mobile)的第一人称控制。它附带标准字符控制器。

我们的场景中有7个敌人,每个敌人都有一个非运动学刚体。当玩家靠近时敌人向玩家移动

场景有5500个三角形/6000个角,当玩家不移动时,我们在iPhone 4上有20-25 fps。当玩家开始移动时,fps下降到7-10。

另外,我们通过直接改变敌人的变形来移动敌人,而不是调用AddForce。

在profiler中我们可以看到物理。当玩家移动时,模拟大约占用60%-70%的cpu。

我们应该如何解决这个问题?

我们是Unity和3D的新手。对不起,我的英语不好。

根据Unity的文档,在iOS设备上使用物理引擎会有性能损失,因为它严重依赖于浮点数操作。http://docs.unity3d.com/Documentation/Manual/iphone-basic.html

为了提高性能,正如文档所建议的,避免网格碰撞器,设置一个低固定帧率,并启用Rigibody插值。

我能制作一款使用大量物理元素的游戏吗?答:物理可能很昂贵在iOS上,它需要大量的浮点数运算。你应该完全避免使用网格碰撞器,但他们可以这样做如果真的有必要,就使用它们。要提高性能,请使用低固定帧率使用编辑->时间->固定增量时间。的一帧建议10-30分钟。启用刚体插值以实现平滑运动时使用低物理帧率。为了实现完全流体帧率没有振荡,是最好的选择固定的deltaTime值基于你的游戏的平均帧率进入iOS系统。建议设置为1:1或一半帧率。为例如,如果你获得30 fps,你应该使用15或30 fps进行固定帧率(0.033或0.066)

最新更新