查看uGUI UI组件生成的顶点数

uGUI中就三个基本的UI组件 TextImageRawImage,它们都继承自 Graphic组件,查看 Graphic组件源码可以发现,显示这些UI组件时分为好几个步骤,其中包括了
  • 当组件参数改变时,重新生成顶点列表
  • 获取组件当前节点上继承了IMeshModifier接口的组件,对生成的顶点列表进行修改
  • 使用生成的顶点列表填充网格
uGUI的 ShadowOutline就继承IMeshModifier接口,简单的把UI组件生成的顶点列表复制若干遍再进行位置偏移,以达到阴影或外轮廓的效果
所以要查看UI组件生成的顶点数,可以将下面的脚本挂到UI节点上

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UIVertexDebug : BaseMeshEffect
{
    public override void ModifyMesh(VertexHelper vh)
    {
        List<UIVertex> verts = new List<UIVertex>();
        vh.GetUIVertexStream(verts);
        Debug.Log(verts.Count);
    }
}

可以发现一个Simple类型的 Image组件就6个顶点,一个Sliced类型的 Image组件54个顶点, 而 Text组件中的1个字符就会生成6个顶点,如果加了 Outline,则顶点数会翻5倍

稍微修改上面的代码

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UIVertexDebug : BaseMeshEffect
{

    public Mesh mesh = null;

    public override void ModifyMesh(VertexHelper vh)
    {
        List<UIVertex> verts = new List<UIVertex>();
        vh.GetUIVertexStream(verts);
        Debug.Log(verts.Count);

        if (mesh == null)
        {
            mesh = new Mesh();
        }
        vh.FillMesh(mesh);
    }
}
在Unity中添加一个新的Inspector面板,双击Mesh,点击新的Inspector面板右上角的锁锁住该面板,就可以实时查看节点上UI组件生成的网格信息了







  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值