深圳Unity3D培训
达内深圳龙华中心

150-1322-7143

热门课程

Unity3D知识:Unity3d优化之路

  • 时间:2017-10-25
  • 发布:深圳Unity3D培训
  • 来源:达内新闻

Unity3D优化之路.U3D的架构部分已经讲了很多了,这里我想讲讲对于U3D优化的切身体验。


优化之路分三块:

一.衬着级别。

GUI部分:我利用的是NGUI,它对动态移动、旋转、缩放GUI支持的是比较差的,所以我尽管即使不要把适量的移动旋转缩放的部分写在GUI中,但很多情况下是避免不了的。

比如:大量的损害数字,物品掉落,图标的移动和旋转等,为了不让GUI去控制这些衬着物体,一小部分我利用3D面片代替,而大部分利用程序去天生面片衬着脱离了GUI的控制。

其余在那些动态的GUI中,我利用了动态物体优化的属性,加上打消不消要的GUI设置,使得GUI部分效率充分高。

3D部分:殊效是对画面效果最最有影响的部分,我尽管即使不利用粒子或者将粒子的数量减少到最小。尽管即使减少灯光的利用,而利用烘培后的图来代替。剔除那些不需要表示的模型。

2D部分:殊效不放在GUI内,而是把殊效放在非GUI的另一个摄像头内代替。所以,最终摄像头会有多各,总共叠层是这样的:top:gui_effect_camera , middle:gui_camera , bottom:3d_camera;

二.减少占用空间大小。

1.我利用的是动态成本的加载办法WWW办法。所以在导出成本时我利用BuildAssetBundleOptions.DisableWriteTypeTree 的打包办法,减少包的大小。

因为WWW缓存办法在下载后解压后照样会增大空间占用量,所以我利用StreamAssets这个在unity3d里坚固文件夹,把WWW成本放在那里,在游戏开始后结束缓冲读取。

这样既减少了空间占用量,也可以或许结束异步的读取成本办法,唯一的错误是但凡更改成本就需要玩家下载新的游戏包。

对于两种办法的WWW成本加载,在具体项目当中可以或许共同利用,一部分利用网络加载,一部分利用本地StreamAssets加载。

2.对每张Texture,都设置对图片结束压缩。

3.让美术减少模型面片数,并在fbx模型设置中,设置对模型结束压缩

3.让美术减少动画帧数,并在动画设置中,设置对动画结束压缩

4.不利用System,System.Xml以及其他系统自带的DLL,他会多出几兆空间,而用开源的源码代替。

三.内存

1.最基本的就是对需要的成本结束加载,利用完毕后,释放。

2.GUI部分在GUIManager管理类中增加 对GUI结束定时检查的部分,对不展示的GUI成本结束释放。

3.因为有些时候一次性加载的成本适量,内存一下子会压缩,IO过慢导致奔溃,所以我决定成本异步加载。使得加载这么多成本不那么可骇,并且腻滑。

4.内存释放:这里有个重点,我重点测试了一下内存释放的忽视点。在我们利用ngui,或者2dtoolkit结束gui编程时,在释放其gui节点时通常会忘记将gui引用置为null,这就导致了内存泄漏。

一些再也不利用的贴图或者实例数据仍然继续存留在内存中。

想知道更多关于IT行业的信息吗?想远远不如行动,行动起来,一起加入达内,一起进入IT行业,跟着达内的脚步,一起走进如今的互联网信息时代,带给你不一样的色彩生活——【深圳Unity3D培训

上一篇:Unity3D知识:Unity3D性能优化总结
下一篇:Unity3D知识:抽象类具有的特征

深圳Unity3D培训:Unity市场如何?

深圳Unity3D培训:国内游戏开发技术与国外有哪些差别

深圳Unity3D培训:低潮期是自我增值最好的时候

深圳Unity3D培训:实现更佳光照效果的7个技巧

选择城市和中心
贵州省

广西省

海南省