UGUI源码解析——总览

一:图像相关


——UIBehaviour:UI组件的基类,继承MonoBehaviour
UGUI源码解析——UIBehaviour
——CanvasUpdateRegistry:图像、布局重建注册器
UGUI源码解析——CanvasUpdateRegistry
——ICanvasElement:图像、布局重建接口
UGUI源码解析——ICanvasElement
——LayoutRebuilder:负责布局的更新
UGUI源码解析——LayoutRebuilder
——Graphic:负责图像显示与更新
UGUI源码解析——Graphic
——MaskableGraphic:继承自Graphic,实现了裁剪和遮罩功能
UGUI源码解析——MaskableGraphic
——IMaskable:
遮罩接口(被遮罩者)
UGUI源码解析——IMaskable
——ICliappable:裁剪接口(被裁剪者)
UGUI源码解析——IClippable
——IMaterialModifier:材质处理的接口,可以在子类中实现GetModifiedMaterial方法去修改渲染的材质
UGUI源码解析——IMaterialModifier
——Image:显示图像的组件,继承自MaskableGraphic
UGUI源码解析——Image
——RawImage:
显示图像的组件,继承自MaskableGraphic
UGUI源码解析——RawImage
——Text:
显示文本的组件


——VertexHelper:网格数据的工具类
UGUI源码解析——VertexHelper
——IMeshModifier:网格处理的接口,可以在子类中实现ModifyMesh方法去修改顶点数据
UGUI源码解析——IMeshModifier
——BaseMeshEffect:用于实现网格效果的抽象基类,可以在子类中重写ModifyMesh方法去修改顶点数据,我们实现网格效果尽量继承此类(例如描边、阴影、镜像)
UGUI源码解析——BaseMeshEffect
——Shadow:阴影组件,实现原理是将原网格顶点复制出一份并向指定方向移动
UGUI源码解析——Shadow
——Outline:描边组件,实现原理是将原网格顶点复制出四份并向指定方向移动
UGUI源码解析——Outline


二:布局相关

布局系统基于ILayoutElement(布局元素)和ILayoutController(布局控制器)两个概念

 ——LayoutRebuilder:负责布局的更新
UGUI源码解析——LayoutRebuilder
——ILayoutElement:挂载了实现ILayoutElement的组件的对象被视为一个布局元素,布局元素不直接设置布局,只计算自身属性,设置布局由布局控制器设置
UGUI源码解析——ILayoutElement
——ILayoutController:挂载了实现ILayoutController的组件的对象被视为一个布局控制器,布局控制器用于设置布局。布局控制器可分为两种:控制自身和控制子布局元素
UGUI源码解析——ILayoutController
——ILayoutGroup:继承自ILayoutController,挂载了实现ILayoutGroup的组件的对象被视为一个布局控制器,用于控制子布局对象,例如HorizontalOrVerticalLayoutGroup、GridLayoutGroup
UGUI源码解析——ILayoutGroup
——ILayoutSelfController:继承自ILayoutController(布局控制器),挂载了实现ILayoutSelfController的组件的对象被视为一个布局控制器,用于控制自身布局对象,例如ContentSizeFitter、AspectRatioFitter
UGUI源码解析——ILayoutSelfController
——ILayoutIgnorer:挂载了实现ILayoutIgnorer接口的组件的对象可以设置不受布局系统控制,例如LayoutElement
UGUI源码解析——ILayoutIgnorer
——LayoutGroup:LayoutGroup是控制子布局对象组件的基类,实现了ILayoutElement和ILayoutGroup接口,说明它既是一个布局元素也是一个布局控制器,HorizontalLayoutGroup、VerticalLayoutGroup、GridLayoutGroup都继承或间接继承了此类
UGUI源码解析——LayoutGroup
——HorizontalOrVerticalLayoutGroup:继承自LayoutGroup,是HorizontalLayoutGroup和VerticalLayoutGroup的父类,提供了一些HorizontalLayoutGroup和VerticalLayoutGroup通用的方法
UGUI源码解析——HorizontalOrVerticalLayoutGroup
——HorizontalLayoutGroup:水平布局组件
UGUI源码解析——HorizontalLayoutGroup、VerticalLayoutGroup、GridLayoutGroup
——VerticalLayoutGroup:垂直布局组件
UGUI源码解析——HorizontalLayoutGroup、VerticalLayoutGroup、GridLayoutGroup
——GridLayoutGroup:网格布局组件,同时实现了水平和竖直布局
UGUI源码解析——HorizontalLayoutGroup、VerticalLayoutGroup、GridLayoutGroup
——ContentSizeFitter:ContentSizeFitter继承自ILayoutSelfController,是调整对象自适应的组件
UGUI源码解析——ContentSizeFitter
——LayoutElement:继承了ILayoutElement和ILayoutIgnorer接口,作为布局元素组件
UGUI源码解析——LayoutElement
——LayoutUtility: 布局的工具类
UGUI源码解析——LayoutUtility


三:遮罩、裁剪相关 


——MaskableGraphic:继承自Graphic,实现了裁剪和遮罩功能
UGUI源码解析——MaskableGraphic
——IClippable:裁剪接口(被裁剪者)
UGUI源码解析——IClippable
——IMaskable:遮罩接口(被遮罩者)
UGUI源码解析——IMaskable
——IMaterialModifier:材质处理的接口,可以在子类中实现GetModifiedMaterial方法去修改渲染的材质
UGUI源码解析——IMaterialModifier
——IClipper:裁剪接口(裁剪者)
UGUI源码解析——IClipper
——ClipperRegistry:裁剪注册器
UGUI源码解析——ClipperRegistry
——Mask:遮罩组件,它遮罩的形状由Graphic决定,通过StencilBuffer(模板缓存)实现
UGUI源码解析——Mask
——RectMask2D:矩形遮罩组件,它只能裁剪一个矩形区域,不依赖于Graphic,通过
UGUI源码解析——RectMask2D
——MaskUtilities:遮罩相关工具类
UGUI源码解析——MaskUtilities
——StencilMaterial:负责管理模板材质,添加新的材质设置给UI-Default.shader
UGUI源码解析——StencilMaterial
——Clipping:裁剪的工具类,只有一个计算裁切区域的方法


四:

猜你喜欢

转载自blog.csdn.net/LLLLL__/article/details/124276768
今日推荐