UGUI源码解析(十八)RawImage

本文深入探讨Unity中RawImage组件的工作原理,包括其继承关系、如何设置原生尺寸及重建网格的过程。RawImage适用于背景图片或临时图形,通过重写SetNativeSize和OnPopulateMesh方法,确保图像正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RawImage

RawImage继承了MaskableGraphic,顾名思义,就是未经处理的图片,每个RawImage都会创建一个DrawCall,所以最好用在背景图片或是临时图形。RawImage只继承了MaskableGraphic抽象类。

重写了Graphic的SetNativeSize方法,具体实现设置RectTransform的sizeDelta跟纹理Texture的大小尺寸一致。

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)在右下角。

RawImage的UV Rect:

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

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

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值