游戏优化往往是游戏开发中比较重要的一个环节,下面就分享一些自己在性能优化,内存优化,包大小优化方面的经验和总结。 


    Profiler 是unity自带的,用来分析游戏运行性能,内存使用等非常好的工具,你可以通过它准确定位到影响游戏性能的脚本方法,内存过高的资源等等,对你优化游戏性能,内存有很大的帮助。

spacer.gif一、cpu占用分析


wKioL1eq6xvyUy-QAALUk0x_bY0687.png-wh_50


可以看出在白色竖线定位的那一帧,Game.Update()占用了88.3%,如果想知道脚本具体调用堆栈,和具体的问题出在哪,需要把Deep Profiler选上进行深度分析,当你打开深度分析(Deep Profile),所有脚本代码将被分析 - 也就是说,所有的函数调用被记录。知道确切在你的游戏代码中花费的时间,这是有用的。如下图

wKiom1eq7jXxRXHKAAON6nT7ZGY445.png-wh_50


二、内存占用分析

  在Memory栏,可以定位到某一帧,可以看到该帧时内存使用情况,一般就是图片占用内存了,这只是内存概况,要想知道具体是那个图片占用了内存,需要选择Detailed

wKioL1eq72WDOXE_AAFj_oAQd0k194.png-wh_50


wKiom1eq8HbCN3jiAADbZc8ZMvg657.png-wh_50

wKioL1eq8WjzdlZpAAGq-SOr-mA896.png-wh_50


找到了是哪个图片占用内存了,就好办了,开内存优化。


三、内存优化


  从profiler上可以清楚的看到哪个图片占用多少内存,下面就要找到这些图片,根据实际情况对图片进行优化,比如压缩图片,一般来说,如果不是对图片显示要求太高,图片都可以进行一定程度的压缩。选中图片,有一个Max Size,它是限制图片的最大尺寸,这个数值一般可以调整到图片实际尺寸的一般,例如一张1028*720的图片,压缩前内存大小为3.5MB,Max Size可以设置为1024,大小变为2.3MB,基本上都可以接受,甚至Max Size可以设置为512,再甚至可以进行压缩,大小就会变为144KB。所以根据你的项目的实际情况,做一些可以接受的大小调整和压缩,优化效果会非常明显。包大小也会减小很多。

wKioL1eq-qGiUof4AAHa7atDevQ883.png-wh_50

wKiom1eq-qKTn-YeAAHGdJ2kDcE735.png-wh_50

wKiom1eq-qPQjymBAAHMzBemDNk014.png-wh_50

wKioL1eq-qOCVk8yAAG6H_pBq90911.png-wh_50


另外还有,去掉Generate Mip Maps选项前面的勾

wKioL1eq_CKxd8nUAABtZ-etDXA849.png-wh_50


  项目优化是一个细活,还是要多多尝试,调整。

 

四、包大小优化

  build以后,在Console面板最上边点右键->Open Editor Log,打开日志文件,在最下面找到打包记录,它记录了你都把什么东西打包进去了。这样也方便你有针对性的优化资源。

wKiom1eq_abjzQ4mAAAkKLxXb2I177.png-wh_50


wKioL1eq_xODt7XZAAB2_i7ndGM458.png-wh_50