Unity性能内存优化-图片-长宽关系

图片在项目中所占内存大小和图片的长宽(单位像素)是否是4的倍数是有很大关系的,在Unity中长宽都是4的倍数的图片Unity会对其进行压缩处理,从而减少其占用的内存大小
下面是一些实际对比数据:
1.单张图片,仅仅相差一个像素的宽度,所占用的内存大小对比:
Unity性能内存优化-图片-长宽关系

Unity性能内存优化-图片-长宽关系
可以明显的看到,内存占用差别是4倍,原因很显而易见,一个没有进过压缩使用的是RGBA格式存储的,一个是使用ETC2 8bits压缩格式存储的,在Unity这边也做了很明显的提示(意思就是图片的长宽要是4的倍数才会使用压缩格式,这里的规则对于PC端也适用),只是我们大多时候忽略了:
Unity性能内存优化-图片-长宽关系
2.将两个仅仅相差一个像素大小的图片分别放入到一个空的Unity工程中,然后将图片复制100个,打包后比对包的大小:Unity性能内存优化-图片-长宽关系
Unity性能内存优化-图片-长宽关系
对比后发现还是有5兆左右的差距的,说明有压缩的图片打的包确实会节约不少内存和包体大小

3.有时候比较容易忽略的一点,就是导入图片的时候有的自动勾选了Generate Mip Maps选项的,没注意就那样使用了,后来不仅在UI显示的时候会比较模糊,占用的存储空间也会相差快6倍:
Unity性能内存优化-图片-长宽关系

Unity性能内存优化-图片-长宽关系
通过上面总结一下呗!
1.美术出图的时候,尽量让图片的长宽都为4的倍数;
2.程序导入图片的时候,要查看一下是否勾选了Generate Mip Maps选项,如果是记得去掉;