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