我们为iOS开发FPS游戏。玩家角色是标准资产(移动)的第一人称控制。它附有标准的字符控制器。
我们现场有7个敌人每个敌人都有一个非运动的RigidBody。当玩家靠近时,敌人会移动到玩家
场景有5500个三角形/ 6000个顶点当玩家不移动时,我们在iPhone 4上有20-25个fps。当玩家开始移动时,fps降至7-10。
此外,我们通过直接更改变换来移动敌人,而不是通过调用AddForce。
在分析器中,我们可以看到,当玩家移动时,Physics.Simulate占用了大约60%-70%的cpu。
我们应该如何解决这个问题?
我们是Unity和3D的新手。抱歉我的英文。
答案 0 :(得分:4)
根据Unity的文档,在iOS设备中使用物理引擎会有性能损失,因为它严重依赖于浮点数操作。 http://docs.unity3d.com/Documentation/Manual/iphone-basic.html
为了提高性能,正如文档所示,避免网格碰撞器,设置低固定帧率,并启用Rigibody插值。
我可以制作使用重物理的游戏吗? 答:物理学可能很贵 在iOS上它需要大量的浮点数运算。您 如果可能的话,应该完全避免MeshColliders,但他们可以 如果他们真的有必要使用。要提高性能,请使用 使用编辑 - >时间 - >固定增量时间的低固定帧速率。帧率 建议使用10-30。启用刚体插值以实现平滑 使用低物理帧速率时的运动。为了要达到 完全流畅的帧速率没有振荡,最好选择 根据游戏的平均帧率修复deltaTime值 上iOS。建议使用1:1或一半的帧速率。对于 例如,如果你获得30 fps,你应该使用15或30 fps进行修复 帧速率(0.033或0.066)