源码16:RawImage
/// <summary>
/// Displays a Texture2D for the UI System.
/// </summary>
/// <remarks>
/// If you don't have or don't wish to create an atlas, you can simply use this script to draw a texture.
/// Keep in mind though that this will create an extra draw call with each RawImage present, so it's
/// best to use it only for backgrounds or temporary visible graphics.
/// </remarks>
[RequireComponent(typeof(CanvasRenderer))]
[AddComponentMenu("UI/Raw Image", 12)]
public class RawImage : MaskableGraphic
{
[FormerlySerializedAs("m_Tex")]
[SerializeField] Texture m_Texture;
[SerializeField] Rect m_UVRect = new Rect(0f, 0f, 1f, 1f);
...
}
看代码理解最快得就是看它得注释 ,UGUI源码里已经注明了:
RawImage 用于在UI系统里显示一张Texture2D纹理
但是它和Image得区别是啥?下面注释也说了,当不希望创建图集得时候,可以使用这个组件绘制纹理,但是是用RawImage会有额外得DrawCall,所以一半只用于背景或者临时可见得图案。
相对来说RawImage得实现比较简单

RawImage组件在Unity的UI系统中用于显示Texture2D,不依赖图集。相比Image,它会产生额外的DrawCall,适合用于背景或临时图形。RawImage允许自定义UV坐标,设置显示范围。在OnPopulateMesh方法中,它根据纹理尺寸和UVRect调整顶点坐标,用于绘制。代码还涉及到纹理缩放计算,但具体作用有待进一步解释。
最低0.47元/天 解锁文章
2018

被折叠的 条评论
为什么被折叠?



