Unity移动端优化

Unity可以说是现今最流行的游戏引擎,有许多著名的移动端游戏都是用Unity制作。但是如果将未经处理的游戏发布出去很有可能在低端机上无法流畅运行,从而影响玩家体验。因此,Unity的优化至关重要。

为了确定优化方向,我们需要先分析游戏状态。通常有两种分析方法。

第一种,我们可以通过Game窗口中的Stats观察游戏渲染统计状况,可以看到各个统计变量。其中Audio指的是音频,Graphics指的是图形。Network指的是网络。

第二种,我们可以打开性能分析器Profiler来分析游戏状态。

当在其中发现有占用较高或者数量较大的信息时,可以考虑进行优化。通常优化分为以下四个部分。

1.CPU

2.GPU

3.内存

4.音频

unity%e7%a7%bb%e5%8a%a8%e7%ab%af%e4%bc%98%e5%8c%96

CPU优化

1.静态批处理

静态批处理较为简单,对于游戏中那些不会移动的物体,只需要在Inspector中勾选Static即可。

2.动态批处理

动态批处理有限制条件,想要进行动态批处理需要保证物体网格的顶点数少于900,或者模型的顶点数不超过300。如图的网格具有24个顶点,12个三角形,可以进行动态批处理。动态批处理不用手动设置。

 

GPU优化

1.模型优化

可以考虑让3D建模师在建模时就减少模型的顶点数,因为移动端相比PC端配置低很多,对模型的要求也会降低。

2.LOD

选中物体,点击Component->Rendering->LOD Group即可开启LOD,需要注意的是每个区域的大小是可调的,你可以改变距离来实现不同的细节。近处为100%细节,远一些会变化为60%细节,再远一些为30%,之后会不渲染,从而降低开销。

3.遮挡剔除

遮挡剔除指的是处于某些物体后面的物体就不进行渲染,这样就能避免无用渲染。开启的方法是选中要开启的物体,在Inspector中点击Occluder Static和Occludee Static。Occludee Static是指无法阻挡其它物体,只能被阻挡。Occluder Static则可以阻挡其它物体。

4.透明实时限制

透明物体,实时光都是非常消耗资源的,因此,能不用就尽量不用。

 

内存优化

1.减小图片尺寸

移动端对画质的要求并不像PC端那么高,因此可以适度削减画质。图片的分辨率也不用太高,我觉得1080P够用了。

2.采用图集

将所有图片打包到一起,可以减少Draw Call,同时可以适度压缩,减少内存的消耗。打包的工具可以采用NGUI或者Texture Packer。

 

音频优化

1.采用短片段

为了实现音效或背景音乐,可以采用短片段重复播放的方法,减少消耗。

2.压缩音频

如果一定要使用长音频,那需要将其压缩,可以保证减少可执行文件的大小。