0

我们为 iOS 开发 FPS 游戏。玩家角色是来自标准资产(移动)的第一人称控制。它附有标准的角色控制器。

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

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

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

在分析器中,我们可以看到当玩家移动时,Physics.Simulate 会占用大约 60%-70% 的 cpu。

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

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

4

1 回答 1

4

根据 Unity 的文档,在 iOS 设备中使用物理引擎会降低性能,因为它严重依赖浮点数运算。http://docs.unity3d.com/Documentation/Manual/iphone-basic.html

为了提高性能,如文档建议的那样,避免使用 Mesh Colliders,设置低固定帧速率,并启用刚体插值。

我可以制作使用重物理的游戏吗? 答:iOS 上的物理可能很昂贵,因为它需要大量的浮点数运算。如果可能,您应该完全避免使用 MeshColliders,但如果确实需要,可以使用它们。要提高性能,请通过 Edit->Time->Fixed Delta Time 使用较低的固定帧速率。建议使用 10-30 的帧率。启用刚体插值以在使用低物理帧速率时实现平滑运动。为了在没有振荡的情况下实现完全流畅的帧速率,最好根据您的游戏在 iOS 上获得的平均帧速率选择固定的 deltaTime 值。建议使用 1:1 或一半的帧速率。例如,如果您获得 30 fps,您应该使用 15 或 30 fps 来获得固定帧速率(0.033 或 0.066)

于 2013-04-08T14:28:02.830 回答