首先要知道为什么untiy中的图片需要是2的N次方
第一:底层图形学只识别2的N次方的图片,OpenGL仅支持分辨率为2mx2n的纹理,非2的N次方的图片会转化为2的N次方的图片,这个转化的过程十分耗时
第二:ios pvrtc的原因,有些GUP不支持NPOT,遇到NPOT会有一个转换POT的过程,浪费性能
解决办法
第一:把不规则的图打成图集
第二:如果是一些NGUI的texture UGUI的RawImage 就尽量的按照最接近的尺寸来做 比如123*58那么让美术提供 128*64 的图,可以填充透明空白
第三:这种单独的大图直接使用unity的ASTC格式加载,不用原图保持2的N次方
ASTC一般UI使用 6*6 贴图使用8*8
iOS 上,苹果从 A8 处理器开始支持 ASTC 格式(即从 iphone6,iPad mini 4 开始支持),而以前的 iPhone 5s 和 iPad mini 3 及之前的设备都不支持。
Android 上,未来的压缩格式正在从 ETC2 转向 ASTC
2012年开始就支持了,现在应该没有那么次的机型了吧