游戏优化往往是游戏开发中比较重要的一个环节,下面就分享一些自己在性能优化,内存优化,包大小优化方面的经验和总结。
Profiler 是unity自带的,用来分析游戏运行性能,内存使用等非常好的工具,你可以通过它准确定位到影响游戏性能的脚本方法,内存过高的资源等等,对你优化游戏性能,内存有很大的帮助。
一、cpu占用分析
可以看出在白色竖线定位的那一帧,Game.Update()占用了88.3%,如果想知道脚本具体调用堆栈,和具体的问题出在哪,需要把Deep Profiler选上进行深度分析,当你打开深度分析(Deep Profile),所有脚本代码将被分析 - 也就是说,所有的函数调用被记录。知道确切在你的游戏代码中花费的时间,这是有用的。如下图
二、内存占用分析
在Memory栏,可以定位到某一帧,可以看到该帧时内存使用情况,一般就是图片占用内存了,这只是内存概况,要想知道具体是那个图片占用了内存,需要选择Detailed
找到了是哪个图片占用内存了,就好办了,开内存优化。
三、内存优化
从profiler上可以清楚的看到哪个图片占用多少内存,下面就要找到这些图片,根据实际情况对图片进行优化,比如压缩图片,一般来说,如果不是对图片显示要求太高,图片都可以进行一定程度的压缩。选中图片,有一个Max Size,它是限制图片的最大尺寸,这个数值一般可以调整到图片实际尺寸的一般,例如一张1028*720的图片,压缩前内存大小为3.5MB,Max Size可以设置为1024,大小变为2.3MB,基本上都可以接受,甚至Max Size可以设置为512,再甚至可以进行压缩,大小就会变为144KB。所以根据你的项目的实际情况,做一些可以接受的大小调整和压缩,优化效果会非常明显。包大小也会减小很多。
另外还有,去掉Generate Mip Maps选项前面的勾
项目优化是一个细活,还是要多多尝试,调整。
四、包大小优化
build以后,在Console面板最上边点右键->Open Editor Log,打开日志文件,在最下面找到打包记录,它记录了你都把什么东西打包进去了。这样也方便你有针对性的优化资源。