zoukankan      html  css  js  c++  java
  • Unity-UI

    渲染的细节

    牢牢记住Canvas绘制几何图元的顺序是按照透明队列进行的。也就是说,Unity UI产生的几何图元都是按照从后向前使用alpha混合进行绘制

    优化注意

    • CanvasGroup控制显隐,而非销毁或者SetActive
    • 并非相同材质和图片就会合批,如果中间插入别的UI元素可能会打断合批 (和一下第二点同?)
    • Canvas动静分离?

    重要 --连续点击复杂重叠的mask

    • 同一图集的Image元素应尽量保证在Hierarchy中连续,避免中间插入其他图集,或插入文本。
    • 避免图片叠加在一起(遮挡,旋转)
    • 透明Image,用来做响应点击事件,同样存在开销
    • 不要勾选Raycasts,如果不需要
    • 避免或减少Mask的使用,1个Mask至少增加两个DC
    • 避免频繁动态的更新UI元素的Vertex, Rect, Color, Material,
    • 避免UI元素数目过多和层次结构过于复杂影响Batch更新速度。
    • 使用缓存池,对缓存频繁使用的元素。
    • 固定的Text考虑与背景图层合在一张图上(可能不便本地化,但可以减少drawcall)。

    次重要

    • 降低界面的更新频率
    • 避免图集分离,使用相同的图集。
    • 如果sprite是中心镂空且切图为九宫格时,可以去除fill center,以减少over draw
    • 避免频繁删除/增加UI对象,UI层次结构变化会引起Canvas的更新Texture等,可能引起Canvas数据更新和Batch更新计算,有可能引起VBO Update(重新提交顶点数据)。
    • 尽可能使用少的UI Material和贴图(使用图集),使得可以Batching。
    • 同一父节点下所有子节点,保持相同的层次结构(如List控件下的item),便于底层相同depth下UI元素Batch。

    重建(rebuild)过程(Graphics)

    总体

    重建过程是指Unity UI的C# Graphic组件的 layout和mesh重新计算的过程

    重合批 ReBatching

    1,首先第一步要根据深度关系进行排序,如果一个canvas底下的层级关系非常复杂,它的排序的性能消耗呈非线性的增长。
    2,另外一个就是覆盖关系,在UI里面,其实像我刚才提到的,我们需要尽量避免UI的重叠。举个简单的例子,如果我们有两个Button,它们重叠的话,它是多少的消耗呢?这就是一个覆盖关系。
    3,然后就是一个材质,材质在一开始接触Unity引擎的时候都会听说过静态合批和动态合批。其实原理是一样的,我们能够合到一个批次里面,他们的材质必须是一样的,就是UI组件。

    ReBatching是多线程的

    rebatching的过程当中还有一点需要注意,它是多线程的

    ReBuild

    主要是布局的重新build还有图形学的Graphic 的rebuild
    (比如说我们常用的属性,有位置,颜色,都会影响到Graphic的重建)

    Canvas

    canvas其实在UGUI里面重要的作用就是生成UI组件,然后生成command命令,然后传递到GPU,最后由GPU把它们画出来
    就是避免出现中间层 (中间层的意思就是说我某一个UI组件和它周围的UI组件都不在一个批次里)

    重建 是UGUI优化的关键 -- Unite2017嘉宾杨怀忠分享《UGUI深度优化》
    https://www.jianshu.com/p/dc9f83f8e818
    https://www.cnblogs.com/zhaoqingqing/p/9658403.html
    optimizing-unity-ui

  • 相关阅读:
    css 左右两栏 左边固定右边自适应
    Oracle 执行长SQL
    Oracle 游标基础
    ERROR 000464: Cannot get exclusive schema lock. Either being edited or in use by another application
    MyEclipse 批量更新编码集
    使用Windows服务发布WCF服务【转载】
    JavaScript的陷阱【转载】
    JS图片切换带超链接
    新正则表达式
    asp.net垃圾代码之asp.net去掉垃圾代码,优化aspx页面性能的方法
  • 原文地址:https://www.cnblogs.com/Jaysonhome/p/13675697.html
Copyright © 2011-2022 走看看