【问题标题】:Physics Material slow down the game物理材料减慢游戏速度
【发布时间】:2013-06-05 16:14:03
【问题描述】:

我开发了类似硬币推土机的游戏。为了硬币的平稳移动,我为每个硬币添加了一种物理材料,但这样做之后我的游戏非常慢。是否有任何替代方案,或者如何在不使用物理材料的情况下使硬币运动平稳。那么任何人都可以帮助我摆脱这种情况。

【问题讨论】:

  • 我有一些使用 Unity3D 构建硬币推土机游戏的经验。将物理材质应用于游戏对象几乎不会成为问题。物理材料不仅仅是一些用于物理计算的数学参数。可能是对撞机和刚体导致了这个问题。请打开分析器并查看哪些部分最重(如果您使用的是专业许可证)。我想你应该使用更轻的对撞机和更少的计算迭代
  • 硬币是从 3d 工作室导入的,它是 obj 扩展。所以我可以用哪个对撞机代替网格对撞机?
  • 我已经看到当推土机推到硬币时,剖析器的物理率为 94%。

标签: ios performance unity3d game-physics


【解决方案1】:

所以问题是物理计算。

不要使用图形的网格作为碰撞器来计算硬币的移动,尤其是当网格上有很多三角形和顶点时。你应该选择一个更简单的对撞机,也许像棱镜这样的东西会表现得像硬币一样,减少了大量的计算。您可以使用从 3d 软件导出的另一个简单的棱镜网格,并使用该网格制作一个新的游戏对象。从原始硬币中剥离所有与物理相关的东西(刚体、对撞机和物理材料)。然后将没有物理的可见硬币和新添加的对象(处理所有物理)组织到同一个父级。网格碰撞器中更少的三角形意味着更少的计算。尽可能少地控制对撞机网格三角形。我建议使用 box collider 作为起点来检查性能是否有所提高。

另一件可能有帮助的事情是更改物理设置中的Solver Iteration Count。您可以尝试将其从默认值更改为较低的值(对于硬币游戏来说,可能 3 或 4 就足够了)。

将帧速率限制为较低的值也会有所帮助,但这是您应该采取的最后一种方式。

【讨论】:

  • 你太棒了。感谢您的回复。将 Solver Iteration Count 值更改为 2 后,现在游戏有点流畅,我已经选中了 box collider ,并且 box collider 游戏运行良好。所以问题是网格对撞机。您能否给我一些有关“从 3d 软件导出的棱镜网格”的更多信息,因为我是 unity3d 的新手。
  • 如果您有 3D 设计师,您可以要求他/她制作一个棱镜(3d 多边形),如this。也许 8 条边或 16 条边可以很好地描述一枚硬币。然后您可以使用棱镜网格作为对撞机网格而不是盒子对撞机(以改善现实)。如果没有适合您的 3d 设计师,您必须自己制作一个。其实自己DIY就够简单了。
【解决方案2】:

您可以延迟添加物理到硬币。我的意思是当硬币快要掉下来的时候加上物理。此外,当您将硬币移出场景时,您需要销毁每个硬币体。如果您只移除精灵,那么场景中的身体将会太多。

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多