obsidian/笔记文件/2.笔记/OnPopulateMesh.md

21 lines
1.1 KiB
Markdown
Raw Permalink Normal View History

2025-03-26 00:02:56 +08:00
#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]]