美文网首页
UGUI雷达图《二》

UGUI雷达图《二》

作者: super41 | 来源:发表于2021-04-16 15:18 被阅读0次

今天我们来实现在Scene调节雷达图的效果

雷达调节.gif
具体细节主要在第一篇,如果不清楚的可以看向这里
UGUI雷达图《一》
  • 简单说下思路
    我们需要创建出几个子物体,这样就可以在Scene里自由拖曳,接着我们把每个点的局部坐标添加为顶点就可以了。

  • 开始实现

  1. 自动创建出对应的子物体个数
        private void CheckCount()
        {
            //自动填充,并设置名字
            while (transform.childCount < ChildCount)
            {
                GameObject gameObject = new GameObject();
                gameObject.transform.SetParent(transform);
                gameObject.name = transform.childCount.ToString();
            }
        }
  1. 把子物体的局部坐标添加为顶点
        private void AddVert(VertexHelper vh)
        {
            vh.Clear();

            for (int i = 0; i < ChildCount; i++)
            {
                var childTran = transform.GetChild(i);
                var pos = childTran.localPosition;
                vh.AddVert(pos, Color.blue, Vector2.zero);
            }
        }

        private void AddTriangle(VertexHelper vh)
        {
            int baseIndex = 1;
            for (int i = 0; i < ChildCount - 2; i++)
            {
                vh.AddTriangle(0, baseIndex, baseIndex + 1);
                baseIndex++;
            }
        }
  1. 实现实时刷新.这步挺关键的,添加这步后才能在移动子物体坐标后,实时刷新图形
        private void Update()
        {
            //实时绘制
            SetAllDirty();
        }

最后上下完整代码

    public class Radar2 : Graphic
    {
        public int ChildCount;

        protected override void OnPopulateMesh(VertexHelper vh)
        {
            if (ChildCount <= 2)
            {
                return;
            }
            
            //检查子孩子个数
            CheckCount();
            //添加顶点
            AddVert(vh);
            //添加三角形
            AddTriangle(vh);
        }
        
        
        private void CheckCount()
        {
            //自动填充,并设置名字
            while (transform.childCount < ChildCount)
            {
                GameObject gameObject = new GameObject();
                gameObject.transform.SetParent(transform);
                gameObject.name = transform.childCount.ToString();
            }
        }

        private void AddVert(VertexHelper vh)
        {
            vh.Clear();

            for (int i = 0; i < ChildCount; i++)
            {
                var childTran = transform.GetChild(i);
                var pos = childTran.localPosition;
                vh.AddVert(pos, Color.blue, Vector2.zero);
            }
        }

        private void AddTriangle(VertexHelper vh)
        {
            int baseIndex = 1;
            for (int i = 0; i < ChildCount - 2; i++)
            {
                vh.AddTriangle(0, baseIndex, baseIndex + 1);
                baseIndex++;
            }
        }

       //另外一种添加三角形的方法
        private void AddTriangle2(VertexHelper vh)
        {
            for (int i = 0; i < ChildCount -1; i++)
            {
                vh.AddTriangle(0,i,i+1);
            }
        }      

        private void Update()
        {
            //实时绘制
            SetAllDirty();
        }
    }

在Canavas下新建一个空物体,并挂上该脚本,就可以调起来了~

雷达拖动.png
好,这次就到这里了。有没有发现这前2篇,都没有用到UV,UV一直都赋为Vector.Zero...
第三篇有讲到UV,感兴趣可以戳这里:
UGUI雷达图《三》--- 圆形Image

相关文章

  • UGUI雷达图《二》

    今天我们来实现在Scene调节雷达图的效果 具体细节主要在第一篇,如果不清楚的可以看向这里 简单说下思路我们需要创...

  • UGUI雷达图《一》

    今天我们使用UGUI来实现这样一个雷达图雷达.gif 简单说下思路主要是通过自己定义顶点的位置来实现绘制多边形。那...

  • UGUI雷达图《三》--- 圆形Image

    今天我们来实现一个圆形Image,如下图。(哈,这次其实不是画雷达图了,而是画圆形Icon,不过其原理和之前的雷达...

  • iOS使用Charts框架绘制—雷达图

    首先先看一下效果: 一、创建雷达图对象 二、设置雷达图样式 1. 设置雷达图线条样式 雷达图的线条有两部分构成, ...

  • 需求真伪辨别工具

    1 雷达图 雷达图主要是以二维图像展示多维数据的图形,通过雷达图可以直观看出各维度数据之间的差距,一般用于财务领域...

  • Unity UGUI学习系列(三) ------ 雷达图实现

    本系列文章是学习siki学院UGUI整体解决方案-案例篇笔记GitHub地址:https://github.com...

  • 20UGUI系统控件的了解

    UGUI的了解## UGUI(unity graphical user interface)可以简称为Unity图...

  • R语言可视化(二十一):雷达图绘制

    21. 雷达图绘制 清除当前环境中的变量 设置工作目录 使用fmsb包绘制雷达图 使用ggradar包绘制雷达图

  • R实战| 雷达图(Radar Chart)

    R实战| 雷达图(Radar Chart) 雷达图(radar chart),又称蜘蛛网图(spider plot...

  • 数据雷达图

    最近公司项目,需要用到雷达图的效果,echarts的雷达图不太符合公司的需求,所以自己用canvas写了个雷达图的...

网友评论

      本文标题:UGUI雷达图《二》

      本文链接:https://www.haomeiwen.com/subject/kjeelltx.html