• 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

  • 相关阅读:
    C++ 实现图书馆资料管理系统
    k8s创建pod-affinity亲和性时报错解决办法
    Rust 第三方库创建和导入(cargo --lib)
    史上最强 Java 学习路线图!
    使用缓冲区提高并发
    前端面试记录
    Java8实战-总结37
    HTML篇一
    Unity实现帧序列
    线阵相机之帧超时
  • 原文地址:https://blog.csdn.net/LLLLL__/article/details/126504593