2013-06-05 47 views
0

我开发出了类似硬币推土机的游戏。为了硬币的顺利移动,我为每枚硬币添加了一种物理材料,但是在完成之后,我的游戏速度很慢。有没有其他的选择呢,或者如何在不使用物理材料的情况下让硬币运动平滑?那么任何人都可以帮助我摆脱这种情况。物理材料放慢游戏速度

+0

我在使用Unity3D制作硬币推土机游戏方面有一些经验。将物理材质应用于gameObject几乎不成问题。物理材料比物理计算的一些数学参数更重要。这可能是导致问题的对撞机和刚体。请打开分析器并查看哪些部分最重(如果您使用的是专业版许可证)。我想你应该使用一些较轻的对撞机和较少的计算 – onevcat

+0

硬币是从3D工作室导入的,它是obj的扩展。所以,而不是对撞机,我可以吗? – Yashesh

+0

当推土机推到硬币时,我已经看到探查器的物理效率是94%。 – Yashesh

回答

4

所以问题是物理计算。

不要使用图形的网格作为碰撞器来计算硬币的移动,特别是当网格上有很多三角形和垂直点时。你应该选择一个更简单的对撞机,也许像棱镜一样的行为类似于硬币,并减少大量的计算。您可以使用从3D软件导出的另一个简单的棱镜网格,并使用该网格创建一个新的游戏对象。从原始硬币中删除与物理相关的所有内容(刚体,对撞机和物理材料)。然后将没有物理的可见硬币和新添加的对象(处理所有物理)组织到同一父级。网状对撞机中较少的三角形意味着较少的计算。尽可能少地控制对撞机网格三角形。我建议使用盒子对撞机作为起点来检查性能是否提高。

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

将帧率限制为较低的值可以提供帮助,但这是您应该去的最后一种方式。

+0

你真棒。感谢您的答复。在Solver Iteration Count值更改为2后,游戏变得更加流畅,并且我已经检查了Box Collider,并且Box collider游戏正在运行。所以问题是网格对撞机。你可以请求给我一些关于“从3D软件导出的棱镜网格”的更多信息,因为我是unity3d的新手。 – Yashesh

+0

如果你有一个3D设计师,你可以让他/她做一个棱镜(三维多边形)像[this](http://en.wikipedia.org/wiki/Prism_(geometry))。也许8条边或16条边可以很好地描述一枚硬币。然后,您可以使用棱镜网格作为对撞机网格而不是箱体对撞机(以改善现实)。如果你没有3d设计师,你必须自己创建一个。其实这对于DIY来说足够简单。 – onevcat

+0

感谢您的帮助。我会执行这个。 – Yashesh

0

您可以延迟添加物理硬币。我的意思是当硬币接近下降时加入物理。当你将硬币从场景中移出时,你还需要摧毁每个硬币体。如果你只删除精灵,那么场景中会有太多的物体。

+0

当我倒下时,我已经毁了硬币。 – Yashesh

+0

那么你可能不得不优化你的代码... –