美文网首页
[UGUI源码]Canvas.SendWillRenderCan

[UGUI源码]Canvas.SendWillRenderCan

作者: 蝣来蝣去 | 来源:发表于2018-05-27 23:27 被阅读0次

    一:总览

             canvas.SendWillCanvas 为UGUI网格刷新,每次只刷新单个网格对象。

     willRendeCanvas 为  canvas 类中定义的静态委托事件

    1 canvas 中刷新函数定义

    canvasUpdateRegistry.cs  全局维持一个静态单例 ,内部维护两个数据结构 m_layOutRebuildQueue 、m_GraphicRebuildQueue 两个队列

    2 canvasUpdateRegistry 中维持着两个刷新容器集合

    canvasUpdateRegistry 中刷新的主要逻辑为: 

    3 刷新的主要逻辑 单个元素的刷新

       二 :继承 Graphic的UI控件类刷新规则 -  image 、text、 rawImage 

        m_GraphicRebuildQueue 刷新规则 

    Graphic中定义的两个控制效果的布尔字段 2 graphic中当两个值变会引起网格重建注意:如果是非Active状态,则不会参与重建 3 修改vertex的几个变量会引起网格重建 4  引起材质球变化的函数调用,主要是一些mask遮罩等效果。 5  graphic 会重新删除下网格重新刷新网格

    注意: 材质变化 不会引起网格重建,只会修改下材质球!

    6 graphic 更新材质球

    3 m_layOutRebuildQueue  刷新规则

    注册的几个地方 ,主要是在OnValid()的时候 需要刷新一下  在OnEnable中 每次开启关闭 需要重新刷新下 设置缓冲dirty会重新刷新下

    注意:当前gridLayout 发生变化 ,目前来看 不会发生网格重建,只会修改显示区间 只有scrollRect在非编辑器下才会管用。

    其他目前都只是在editor下才会有用,因为除了ScrollRect ,其他全部在Editor的OnValid()函数下才会更新。

    相关文章

      网友评论

          本文标题:[UGUI源码]Canvas.SendWillRenderCan

          本文链接:https://www.haomeiwen.com/subject/gtiijftx.html