zoukankan      html  css  js  c++  java
  • UGUI源码(三)

    LayoutRebuilder

    图片转自:https://blog.csdn.net/qq_28820675/article/details/106245195

    参考:https://blog.csdn.net/qq826364410/article/details/88141753

    Graphic的Layout是通过LayoutRebuilder.MarkLayoutForRebuild方法来标记重建的。

    MarkLayoutRebuild:

    1.找到父对象中最近的ILayoutGroup组件layoutRoot。

    2.从LayoutRebuilder对象池中Pop出一个LayoutRebuilder并用layoutRoot初始化。

    3.如果创建的LayoutRebuilder已经在CanvasUpdateRegistry的布局重建队列中,就更新,否则就加入。

     LayoutRebuilder继承了ICanvasElement,在重建时遍历CanvasUpdateRegistry的重建队列,调用Rebuild方法。

    ReBuild:实现了ICanvasElement的ReBuild方法

    PerformLayoutCalculation:参数:(layoutRoot,回调函数计算布局)

    以layoutRoot的子对象为参数递归调用该方法,先计算子对象布局,然后计算父对象布局,父对象的布局计算需要依赖子对象的大小(比如ContentSizeFitter)

    PerformLayoutControl:参数:(layoutRoot,回调函数计算布局)

    1.在layoutRoot上获取所有ILayoutController类型的组件

    2.先处理组件中为ILayoutSelfController类型的情况,也就是先处理本身的RectTransform大小设置

    3.然后处理组件中不是ILayoutSelfController了性的情况,处理比如子对象的布局组(LayoutGroup)的RectTransform大小设置。

    4.然后以m_ToRebuild的子对象为参数,递归调用PerformLayoutControl方法,处理子对象本身的RectTransform大小和子对象的子对象的RectTransform大小。

  • 相关阅读:
    devDependencies和dependencies的版本写法
    dependencies 与 devDependencies 的区别
    Java +selenium Navigation接口介绍
    Java + selenium window()接口方法介绍
    Java + selenium Timeout接口用法介绍
    Java + selenium 启动谷歌浏览器
    selenium 3 下载 + Java使用
    Rsync 实现服务器文件的同步——服务端的安装配置
    selenium V1.0和V2.0差别对比
    PHP的安装配置
  • 原文地址:https://www.cnblogs.com/mcyushao/p/13938471.html
Copyright © 2011-2022 走看看