#unity/日常积累 ## UGUI底层绘制规则 接下去,我比较好奇的是,**OnPopulateMesh到底是什么时候进行调用的**,因为我们都知道,在UI当中消耗比较大的用于都是UI的重建操作,如果我们能够搞明白UI重建规律的话那我们应该可以大大避免UI重建的情况。 Graphic当汇总的DoMeshGeneration调用了OnPopulateMesh ![[Pasted image 20240326141708.png]] 我们可以看到,当RectTransform的尺寸为0的时候就不再调用OnPopulateMesh了,与以前总结出来的优化方案相同。 UGUI中与显示相关的控件,例如Image、Text、RawImage等都继承自MaskableGraphic类,MaskableGraphic[类继承](https://so.csdn.net/so/search?q=%E7%B1%BB%E7%BB%A7%E6%89%BF&spm=1001.2101.3001.7020)自Graphic类 ![[Pasted image 20240329173226.png]] 控件在画面中的形状、颜色、法线等信息都是由Graphics类中的OnPopulateMesh函数所控制 每当改变了顶点或者纹理后,会调用OnPopulateMesh函数 其中VertexHelper的vh是一个顶点辅助类,保存着生成Mesh的基本信息 ![[Pasted image 20240329173238.png]]