简要介绍
RawImage继承了MaskableGraphic,顾名思义,就是未经处理的图片,每个RawImage都会创建一个DrawCall,所以最好用在背景图片或是临时图形。RawImage只继承了MaskableGraphic抽象类。
重写了Graphic的SetNativeSize方法,具体实现设置RectTransform的sizeDelta跟纹理Texture的大小尺寸一致。
关键方法
SetNativeSize方法
使图片保持原有大小
OnPopulateMesh方法
重写Graphic的OnPopulateMesh方法,在CanvasUpdateRegistry布局重建和图形重建时,会调用重建序列中的Graphic的Rebuild方法,Rebuild方法会调用OnPopulateMesh方法,为CanvasRenderer的Mesh提供了顶点、顶点颜色、UV和三角形信息。OnPopulateMesh方法把顶点数据和三角形信息保存到VertexHelper中。
补充知识点:
Unity使用的许多2D坐标空间,其中大部分将X定义为向右增加,而Y则向上增加。(比如,Camera.rect或Camera.pixelRect),而在GUI布局中的Rect是一种特例,(0,0)在左上角,(1,1)在右下角。
重要属性和字段
public Texture texture
纹理
public Rect uvRect
纹理使用的UV
X值:表示距离左边的距离,
Y值:表示距离顶部的距离,
W值:表示矩形的宽度,从X位置开始测量,
H值:表示矩形的高度,从Y位置开始测量,
比如X=0.5,Y=0,W=1, H=1,会只显示右半部分。