參考鏈接:
https://blog.csdn.net/jingangxin666/article/details/80143176
調試過程:
1.修改Image的顏色
2.Graphic.SetVerticesDirty
3.CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild,將當前組件加入到m_GraphicRebuildQueue隊列中
4.CanvasUpdateRegistry.PerformUpdate,在該方法中調用m_GraphicRebuildQueue隊列中的元素的Rebuild方法
5.ICanvasElement.Rebuild
6.Graphic.Rebuild
7.Graphic.UpdateGeometry
8.Graphic.DoMeshGeneration
9.Graphic.OnPopulateMesh
10.Image繼承MaskableGraphic,MaskableGraphic繼承Graphic,即調用Image.OnPopulateMesh
其他:
1.CanvasUpdateRegistry.PerformUpdate,這個方法綁定事件Canvas.willRenderCanvases,即在Canvas渲染前調用
總結:
1.當UI發生改變時,將需要修改的元素添加到Rebuild隊列中,在Canvas.willRenderCanvases時會處理這個隊列,調用UI元素的Rebuild方法,從而實現UI的更新