我开发出了类似硬币推土机的游戏。为了硬币的顺利移动,我为每枚硬币添加了一种物理材料,但是在完成之后,我的游戏速度很慢。有没有其他的选择呢,或者如何在不使用物理材料的情况下让硬币运动平滑?那么任何人都可以帮助我摆脱这种情况。物理材料放慢游戏速度
回答
所以问题是物理计算。
不要使用图形的网格作为碰撞器来计算硬币的移动,特别是当网格上有很多三角形和垂直点时。你应该选择一个更简单的对撞机,也许像棱镜一样的行为类似于硬币,并减少大量的计算。您可以使用从3D软件导出的另一个简单的棱镜网格,并使用该网格创建一个新的游戏对象。从原始硬币中删除与物理相关的所有内容(刚体,对撞机和物理材料)。然后将没有物理的可见硬币和新添加的对象(处理所有物理)组织到同一父级。网状对撞机中较少的三角形意味着较少的计算。尽可能少地控制对撞机网格三角形。我建议使用盒子对撞机作为起点来检查性能是否提高。
另一件可能的帮助是改变物理设置中的Solver Iteration Count
。您可以尝试将其更改为较低的值(对于硬币游戏,可能是3或4就足够了)。
将帧率限制为较低的值可以提供帮助,但这是您应该去的最后一种方式。
你真棒。感谢您的答复。在Solver Iteration Count值更改为2后,游戏变得更加流畅,并且我已经检查了Box Collider,并且Box collider游戏正在运行。所以问题是网格对撞机。你可以请求给我一些关于“从3D软件导出的棱镜网格”的更多信息,因为我是unity3d的新手。 – Yashesh
如果你有一个3D设计师,你可以让他/她做一个棱镜(三维多边形)像[this](http://en.wikipedia.org/wiki/Prism_(geometry))。也许8条边或16条边可以很好地描述一枚硬币。然后,您可以使用棱镜网格作为对撞机网格而不是箱体对撞机(以改善现实)。如果你没有3d设计师,你必须自己创建一个。其实这对于DIY来说足够简单。 – onevcat
感谢您的帮助。我会执行这个。 – Yashesh
您可以延迟添加物理硬币。我的意思是当硬币接近下降时加入物理。当你将硬币从场景中移出时,你还需要摧毁每个硬币体。如果你只删除精灵,那么场景中会有太多的物体。
当我倒下时,我已经毁了硬币。 – Yashesh
那么你可能不得不优化你的代码... –
- 1. 模型放慢了游戏速度 - opengl
- 2. 鼠标移动减慢游戏速度
- 3. 游戏物体击中保持有弹性的材料
- 4. 2d游戏物理?
- 5. 2d游戏物理基于速度缓解输入/输出
- 6. Android的帆布游戏,游戏速度
- 7. Android加速度计游戏
- 8. libGDX:游戏通用速度
- 9. Slick2D游戏速度变化
- 10. 游戏速度问题
- 11. 游戏数学(速度)
- 12. LibGdx弓箭游戏物理
- 13. SpriteKit游戏物理滞后
- 14. TDD和游戏物理
- 15. N游戏角色物理
- 16. 2D平台游戏物理
- 17. 物理OO游戏编程
- 18. 这是游戏物理?
- 19. 液体物理游戏
- 20. 在Flash Pro中测试时游戏运行速度很慢CC
- 21. 其他进程调用GC会减慢我的游戏速度
- 22. QtSDK:游戏速度太慢吗?其他建议?
- 23. 我的Libgdx游戏整合速度慢Admob
- 24. 当射击项目符号时SFML游戏速度减慢
- 25. Libgdx游戏重启时速度越来越慢
- 26. 创造敌人,减慢游戏速度Cocos2d
- 27. 如何增加物体的下落速度在2D游戏
- 28. 角度材料,$ mdDialog
- 29. 物理在视频游戏中,在角加速度上应用扭矩
- 30. Libgdx游戏 - 纹理缩放
我在使用Unity3D制作硬币推土机游戏方面有一些经验。将物理材质应用于gameObject几乎不成问题。物理材料比物理计算的一些数学参数更重要。这可能是导致问题的对撞机和刚体。请打开分析器并查看哪些部分最重(如果您使用的是专业版许可证)。我想你应该使用一些较轻的对撞机和较少的计算 – onevcat
硬币是从3D工作室导入的,它是obj的扩展。所以,而不是对撞机,我可以吗? – Yashesh
当推土机推到硬币时,我已经看到探查器的物理效率是94%。 – Yashesh