Canvas和Graphic的基本关联
2019-11-24 本文已影响0人
至少还有光
Canvas:所有UI的父物体,它起到的作用是把当前所有UI的图形描绘到屏幕上,从源码中可以看出UnityEngine C++类,是通过c++实现一些基础方法的
Canvas负责把它下面所有的组件进行批处理,然后能合并的合并,最后发送渲染指令到Unity的图形系统,这个过程它会获取底下的图形并且描绘出来。
那么它是通过什么来获取子物体的图形的?
通过每一个子物体的Canvas Renderer获取子物体的几何图形
Canvas将所有图形整理进行一个批处理的过程,我们叫做rebatch。
Graphic:所有能显示的图形都必须继承了这个类,
ICanvasElement:继承了这个接口在Canvas下才能显示,不在Canvs下面不能进行mesh重建,包含了Rebuild(Rebuild executing)方法
Rebuild(Rebuild executing):正常UI元素重建的方法,在我们进行批处理之后,我们所有有脏标记的UI组件就会执行我们的重建部分
脏标记是一个bool,脏标记代表我们当前组件是有修改的,image是一个mesh,当前的mesh,我们是需要一遍一遍给它绘制的,如果没有修改是没有绘制必要的,所有才有了脏标记这个概念,如果没有脏标记我们就认为它没有被修改,就不会有重建,如果我们给它标记了脏标记,等于通知系统这个需要被重建,让它被修改的部分显示出来,如果你不做标记,它被修改的部分是不会显示出来的