UGUI源码解析——RawImage

Posted Hello Bug.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UGUI源码解析——RawImage相关的知识,希望对你有一定的参考价值。

一:前言

RawImage是显示图像的组件,继承自MaskableGraphic,可以显示任何类型的贴图
大多应用于小地图或需要根据UV坐标实现动图的效果
因为RawImage显示的图片类型是贴图类型,所以不能打图集,导致每一张RawImage渲染的图像都需要增加一个DrawCall


二:源码解析—属性

——mainTexture

如果mainTexture不为空则使用mainTexture作为贴图,如果mainTexture为空则使用材质材质上的贴图,如果材质上的贴图为空则使用Texture2D.whiteTexture,最终会将mainTexture交给Canvas进行绘制


——uvRect

根据uv参数设置图像的显示范围

多出来的空缺部分,会根据贴图Import Settings中的Wrap Mode决定

1.Repeat:重复
2.Clamp:用最后的像素填充(最后像素为透明,则也用透明填充)
3.Mirror:以边界为中心线镜像
4.Mirror Once:只镜像一次,剩下的空缺的部分用最后的像素填充
5.Per-axis:分别设置uv的Wrap Mode


三:源码解析—方法

——SetNativeSize

设置rectTransform为图片的原尺寸


——OnPopulateMesh

重写了OnPopulateMesh方法修改元素的顶点、颜色、UV等信息存到m_VertexHelper中,最终会将m_VertexHelper传入Mesh并交给Canvas进行绘制
UGUI源码解析——Graphic

以上是关于UGUI源码解析——RawImage的主要内容,如果未能解决你的问题,请参考以下文章

UGUI源码解析——RawImage

UGUI源码解析——Graphic

UGUI源码解析——MaskableGraphic

UGUI源码解析——MaskableGraphic

UGUI源码解析——MaskableGraphic

UGUI的Image与RawImage组件