位置: 编程技术 - 正文
推荐整理分享unity3d 移动平台性能优化专题(12):面板的colider问题和rigibody设置(unity移动游戏开发),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity移动游戏开发,unity3d跨平台,unity 移动应用开发,unity 移动应用开发,unity移动ui,unity3dwasd移动,unity3dwasd移动,unity3dwasd移动,内容如对您有帮助,希望把文章链接给更多的朋友!
首先有一个官方的说法:静态Colider请不要移动,否则会引起物理引擎啥啥啥重置,消耗性能。
然后面板上毫无疑问是有colider的,而且可以肯定的是面板总是存在移动。那么就加上刚体,第二个问题来了,大量的刚体导致物理引擎计算时间过长。
但我纳闷,刚体都是不动的,为啥会如此耗时呢?请教了下外国友人,如下:
If you need the colliders just as raycast hit object do this:
Make sure they are set to isTrigger
Create a new layer for the objects and put them all on this layer
Go to Edit -> project settings -> Physics and disable all interactions in the collision matrix. So just clear the row and column of your layer in the matrix.
When raycasting against them make sure you use the layermask and pass a layermask that only contains the layers you want to raycast against.
哈哈,按照他说的做之后,果然性能上不在是刚体消耗,不过乎帧数并没有提高,我决定继续分析一下。看了下乎是渲染同步引起的,但渲染方面乎没有太好的办法,而且我也好奇为啥我们的面板渲染消耗这么高。
经过测试,乎只要打开一个面板,手机上直接下降帧。看来面板上确实有什么东西存在。
那么就要进行比较分析了。我首先编译了一个简单版,和性能分析器相连,然后在不打开面板情况下观察,然后突然打开一个面板,看两遍的性能消耗变化。
暂时不好发现问题所在,只能通过比较了,安卓上下载了一个帧率显示器,进入了我叫MT2和盗梦英雄的游戏,面板上显示竟然是接近帧,而我们的,只能到帧。我勒个去,到底是啥问题啊。
经过不断研究,发现了一个特点,就是盗梦英雄和我叫MT背景都是2d的,我们的背景是一个主城,3d的。那么可能就是这个原因,背景摄像机和UI摄像机叠加计算。
那么就是说,我们打开面板,背景其实就要被舍弃了。一种比较好的体验就是将背景模糊,然后制作成一个贴图放到UI上,但如果自己做图片会很大,如果用程序实现,怕会有卡顿。然后请教了下策划,它们说游戏很多都是这么处理的,找一个通用的背景图,统一作为所有面板的模糊背景。应该是可行的。ok。既然如此,就测试一下,随便写了两行,打开面板就关闭3d摄像机。关闭面板又会开启3D摄像机。
测试效果不错,增加到了帧,这样还算说得过去。
Unity3D C# 延时执行 协程方式 Demo代码 原创文章,转载请注明出处
[置顶] 【小超_U3D】Unity3D对陀螺仪的使用 最近在做虚拟现实的项目,一直在查找Unity里面关于陀螺仪的文章。下面这代码就是我在网上找出来,当我使用的却不能用。现在这是经过修改过后的,
unity3d在线更新资源(5) 今天碰到的一个新问题是,app更新的时候,Application.persistentDataPath下的文件是不会被清空的。那么如果我始终不去删除,文件会越来越多。而且版本上
标签: unity移动游戏开发
本文链接地址:https://www.jiuchutong.com/biancheng/378747.html 转载请保留说明!友情链接: 武汉网站建设