性能需求
渲染批次(Batches)在200以内
三角形(Tris)在100k以内
UGUI优化方向
✨同一纹理(且不和其他纹理有遮盖)[每种字体是一种单独纹理]、同一Canvas才会合批
-合批是以Canvas为单位的,同一个Canvas内部尽量多合批
-控制Canvas内元素数量,数量太多导致重新合批消耗时间大
-动静分离拆分Canvas,动态元素引起的重新合批不影响静态元素
-尽量不要使用Text控件“Best Fit”属性
Image的Source Image未None时,相当于使用一个单独的贴图(会增加Draw Call)
Mask控件,会增加Draw Call
关于SpritePacker
基于以上原则应尽可能在同一场景(Canvas)使用相同的纹理图册,SpritePacker的默认打包方式会根据图片的类型来打包,RGB和RGBA会分开打包为两个图册,如果需要将一些不同类型的图片打包在一起,可以修改打包代码。
插入以下代码
if (desiredFormat == TextureFormat.PVRTC_RGB2) {
desiredFormat = TextureFormat.PVRTC_RGBA2;
}
if (desiredFormat == TextureFormat.PVRTC_RGB4) {
desiredFormat = TextureFormat.PVRTC_RGBA4;
}
if (desiredFormat == TextureFormat.RGB24) {
desiredFormat = TextureFormat.RGBA32;
}