UI 优化

1. Graphic UI绘制类

2. 其子类 MaskableGraphic   能别遮挡 继承了IMaskable

3. LayoutRebuider 用来重新绘制的类

-----

渲染-------------------------部分:------------------------------------------------------------------------------------------------

概念:

      深度测试:

UI 优化_第1张图片

ztest always less  深度。

 

透明物体

 

`渲染透明物体,从后向前渲染,恰好相反,

缺点:就是会导致重复渲染

 

-----------------网格重建

两种,

   1. 每次都会重建

    2. 仅在需要的时候重建

因此尽量避免使用 setActive

重建部分

Canvas 修改一个,就会导致全部修改

Text   :顶点数,面数特别多。会产生大量消耗

-------------射线部分的逻辑------------------

 

 

---------------合批规则--------------------------

UI深度,自己计算的

材质id,

Text图片id,

rod ,排列顺序

 

 

合批:

就算没有重合也能合批。

-------------------合批条件 -------------------------

数组相邻数据。才可以合批

-------------------------------------------

Mask 为什么不能合批

mask 必须有image ,mask 也有两个所以会隔开。

因为添加的默认材质不同。设置了一个模板缓存,然后还原了一个模板缓存

 

 

总结:

mask 适用于多个,mask2d 适用于1个

   1. mask 不能和外部UI 合批。

   2. mask 内部子物体可以与其他合批。自己不能合批

   3. RectMask2d 的子物体如果被完全遮挡就不会被合批

   4. RectMask2d 子物体可以合批,不能和其他合批

   5. RectMask2d父物体可以合批

 

填充率

   1. 不要重合,大小不要太大了。

 

填充率 方案

   1. 中间镂空       脚本编写工具,不规则图片镂空

   2. 不同场景使用mask   

     3.  阴影和描边会增加顶点效果

       Test Mash Pro 可以解决

    4 UI 和3D 物体之间的渲染关系

         2d 相机之渲染UI,3d相机之渲染场景

   5 填充Tiled 就是平铺图片的时产生多余的顶点

         Image 比较好点。别srpite 好。因为平铺顶点少

  6  Canvas 中的 PixelPerfect完美像素,建议不要开,因为,Scroll 视图,每次拖动的时候都要调整。

   7. UI静动分离Canvas:可以设置一个Canvas的组件给移动的UI单位

  8. UI 组件的显隐,

    不建议使用Image 自带的颜色,每次更改会导致 重新绘制image ,因此使用UI材质球,修改UI材质球不会导致重建。

     控制canvas Renderer 的Cull 控制显隐   或者使用Canvas Group控制一组,或者控制单个。

   9. Text 组件的Best Fit 尽量不要用。代价很高,会影响图集的生成,会生成大量不同大小格式的图集

    10. 打断合批的操作一

             1.  位置轴的改变。(精灵,image没事,button 有事),如果button 没有字体就没事。

              2. 旋转也能改变  180 的倍数都能合批。Z轴改变没影响。

             如果拆分结构,到一个父体上,改变位置 和旋转 轴不会影响

 

 

进入优化解决方案

1. 图集的意义:

  1. 旧的图集 :会根据 格式分开打包。

UI 优化_第2张图片

       UI 优化_第3张图片

2. 新图集的使用:

     两种类型:

          第一种: Master  主图集,直接管理项目资源

                    可以旋转 勾选可以节省空间,

          第二种:  Variant 可以做不同分辨率。节省资源,节省运行效率。

       新图集的加载

       UI 优化_第4张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(unity,编程相关)