Unity-性能优化

性能需求

渲染批次(Batches)在200以内

三角形(Tris)在100k以内

UGUI优化方向

✨同一纹理(且不和其他纹理有遮盖)[每种字体是一种单独纹理]、同一Canvas才会合批

-合批是以Canvas为单位的,同一个Canvas内部尽量多合批
-控制Canvas内元素数量,数量太多导致重新合批消耗时间大
-动静分离拆分Canvas,动态元素引起的重新合批不影响静态元素
-尽量不要使用Text控件“Best Fit”属性
-ScrollView控件,不显示的控件也会draw

Image的Source Image未None时,相当于使用一个单独的贴图(会增加Draw Call)

Mask控件,会增加Draw Call

关于SpritePacker

基于以上原则应尽可能在同一场景(Canvas)使用相同的纹理图册,SpritePacker的默认打包方式会根据图片的类型来打包,RGB和RGBA会分开打包为两个图册,如果需要将一些不同类型的图片打包在一起,可以修改打包代码。

SpritePacker官方文档

插入以下代码

///if 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;
            }
            ///

猜你喜欢

转载自blog.csdn.net/wlz1992614/article/details/53256933