UGUI源码剖析(RawImage)

简要介绍

UGUI源码剖析(RawImage)

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

纹理

UGUI源码剖析(RawImage)

public Rect uvRect

纹理使用的UV

UGUI源码剖析(RawImage)

X值:表示距离左边的距离,

Y值:表示距离顶部的距离,

W值:表示矩形的宽度,从X位置开始测量,

H值:表示矩形的高度,从Y位置开始测量,

比如X=0.5,Y=0,W=1, H=1,会只显示右半部分。

 

上一篇:UGUI源码(三)


下一篇:3Dgame_homework9