【问题标题】:iOS FPS low frame rate when character moves, profiler shows Physics.Simulate takes cpu time角色移动时iOS FPS低帧率,分析器显示Physics.Simulate需要cpu时间
【发布时间】:2013-04-09 02:15:42
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: iphone ios performance unity3d physics


    【解决方案1】:

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

    如文档所示,为了提高性能,请避免使用 Mesh Colliders,设置低固定帧速率,并启用刚体插值。

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

    【讨论】:

    • 在我的 Unity 中,我没有 Edit->Time->Fixed Delta Time。我更改了编辑->项目设置->时间->固定时间步长。对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    • 2011-07-15
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多