简介:
Graphic 作为图像组件的基类,主要实现了网格与图像的生成及刷新方法。
在生命周期Enable阶段、Editor模式下的OnValidate中、层级/颜色/材质改变时都会进行相应的刷新(重建)。
重建过程主要通过 CanvasUpdateSystem 最终被Canvas所重新渲染。
图形绘制过程
- 注册Canvas.willRenderCanvases事件,UI发生变动,该事件触发
- 从渲染队列中获取元素,分别调用ReBuild方法
- Rebuild方法中完成网格、材质等更新
- ui发生变动时,会将发生变动的元素加入渲染队列,实现UI更新,比如Image.
核心代码分析
GraphicRegistry
管理同Canvas下的所有Graphic对象
Dictionary<Canvas, IndexedSet<Graphic>> m_Graphics
Graphic 初始化时(Enable)会寻找其最近根节