Unity性能优化

1.优化一般在开发过程中遇到疑难杂症的使用寻找解决方法。大部分都是在性能卡顿,内存泄露、资源冗余,发热严重等问题。游戏中性能优化主要是围着CPU、GPU和内存三大方面进行优化

2.一般都是CPU中从渲染、UI、加载等几个重要维度分析问题。CPU方面的性能开销主要可归结为两大类:引擎模块性能开销和自身代码性能开销。引擎模块中又可细致划分为渲染模块、动画模块、物理模块、UI模块、粒子系统、加载模块和GC调用等等。渲染模块是消耗最严重的引擎模块。所以1.降低Draw Call是渲染模块优化方面的重中之重。一般来说,Draw Call越高,则渲染模块的CPU开销越大。一些shaders会使Draw Call翻倍,灯光在某些shaders中也会是Draw Call翻倍。所以渲染优化从降低Draw Call,shaders,灯光数量中解决。Draw Call和总线带宽是天平的两端尽可能维持天平的平衡。2.简化资源,简化资源是非常行之有效的优化手段。其渲染资源其实是“过量”的,过量的网格资源、不合规的纹理资源等等。所以,对资源的使用渲染的三角形面片数、网格和纹理资源的具体使用情况分析。3.UI模块,尽量减少刷新(Update)。4.加载问题,健身ab资源冗余,5.代码效率

3.内存优化,资源内存占用一款游戏项目的资源主要可分为如下几种:纹理(Texture)、网格(Mesh)、动画片段(AnimationClip)、音频片段(AudioClip)、材质(Material)、着色器(Shader)、字体资源(Font)以及文本资源(Text Asset)等等。其中,纹理、网格、动画片段和音频片段则是最容易造成较大内存开销的资源。1.纹理Android平台的ETC、iOS平台的PVRTC、Windows PC上的DXT,纹理尺寸,Mipmap功能ead & Write。2. 网格,Normal、Color和Tangent,3则是当你使用LoadFromCacheOrDownload、CreateFromFile或new WWW本地AssetBundle文件时产生的序列化文件。4.托管堆内存占用,内存泄露,无效的Mono堆内存开销,资源的实例化所致改变其Material中的属性来得到特定的受击效果。这种做法则会导致引擎为特定的GameObject重新实例化一个Material,后缀会加上(instance)字样。其本身没有特别大的问题,但是当有改变Material属性需求的GameObject越来越多时(比如ARPG、MMORPG、MOBA等游戏类型),其内存中的冗余数量则会大量增长

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 资源内存占用 在一个较为复杂的大中型项目中,资源的内存占用往往占据了总体内存的70%以上。因此,资源使用是否恰当直...
    hcq666阅读 3,396评论 0 51
  • CPU方面 就目前的Unity移动游戏而言,CPU方面的性能开销主要可归结为两大类:引擎模块性能开销和自身代码性能...
    hcq666阅读 2,189评论 0 52
  • 造成Unity游戏安装包大/运行卡的原因:在我们开发一个移动端的游戏的话,可以直接使用移动端的本地的API来进行开...
    _凉笙阅读 3,102评论 0 9
  • 谈恋爱就是为了结婚吗? 我无数次的提出过这个问题,身边的朋友理直气壮的跟我说:“不然呢?不以结婚为目的的谈恋爱就是...
    林岚_阅读 3,348评论 0 2
  • 晨昏细雨薄雾轻纱装 蒙尘的眉眼 半醉半醒之间 流露的忧伤 我在思念着远方的你 思念着你不经意的微笑 暖入心底的风信...
    南遥思故阅读 577评论 5 12