【游戏开发实战】Unity UGUI制作雷达图/天赋图/属性图/能力图,因为太怕痛就全点了防御力

您所在的位置:网站首页 五力分析雷达图怎么画 【游戏开发实战】Unity UGUI制作雷达图/天赋图/属性图/能力图,因为太怕痛就全点了防御力

【游戏开发实战】Unity UGUI制作雷达图/天赋图/属性图/能力图,因为太怕痛就全点了防御力

2024-07-12 15:03| 来源: 网络整理| 查看: 265

文章目录 一、前言二、最终效果三、原理四、具体实现1、雷达图背景图2、封装UIPolygon.cs3、制作预设4、测试脚本RadarTest.cs 五、运行测试六、结束语七、附录:UIPolygon.cs完整代码

一、前言

点关注不迷路,持续输出Unity干货文章。

嗨,大家好,我是新发。 不知道大家有没有看过这部动画片《因为太怕痛就全点了防御力》: 在这里插入图片描述 在这里插入图片描述 女主在好友理沙的引诱之下,开始玩起最新的VRMMO 《NewWorldOnline》,因为太怕痛,所以全点了防御力。 剧情挺有意思的,大家感兴趣的话可以去看下这部动画片。 言归正传,今天我要讲的,就是如何使用Unity UGUI制作雷达图(或者天赋图/属性图/能力图)。

二、最终效果

在这里插入图片描述 本文Demo工程已上传到CodeChina,感兴趣的同学可自行下载学习。 地址:https://codechina.csdn.net/linxinfa/UnityUGUIPolygonRadarGraphicDemo 注:我使用的Unity版本:2020.2.7f1c1 (64-bit)。 在这里插入图片描述

三、原理

在UGUI中,不管是RawImage、Image还是Text,它们都是继承MaskableGraphic的,而MaskableGraphic又是继承Graphic的,在Graphic中有个OnPopulateMesh方法。

protected virtual void OnPopulateMesh(VertexHelper vh);

参数是VertexHelper,我们可以通过VertexHelper添加顶点,从而实现多边形的绘制。 画成图就是这样子: 在这里插入图片描述

四、具体实现 1、雷达图背景图

首先,我们先制作雷达背景图,如下: 在这里插入图片描述 导入Unity工程中: 在这里插入图片描述

2、封装UIPolygon.cs

封装UIPolygon.cs脚本,它继承MaskableGraphic,重写它的OnPopulateMesh方法。 完整代码见文章末尾。

3、制作预设

制作一个雷达图预设,如下: 在这里插入图片描述 Hierarchy层级视图如下: 在这里插入图片描述 其中UIPolygon节点挂CanvasRenderer组件和UIPolygon组件, 在这里插入图片描述 其中UIPolygon组件相关的参数设置如下: 在这里插入图片描述

4、测试脚本RadarTest.cs

写一个测试脚本RadarTest.cs,挂在Canvas节点上,并赋值成员变量: 在这里插入图片描述 RadarTest.cs代码如下:

using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 测试雷达图 /// public class RadarTest : MonoBehaviour { public UIPolygon uiPolygon; List datas = new List(); void Start() { // 防御力 datas.Add(0.92f); // 智力 datas.Add(0.31f); // 灵巧 datas.Add(0.36f); // 力量 datas.Add(0.28f); // 敏捷 datas.Add(0.35f); uiPolygon.DrawPolygon(datas); } private void Update() { if(Input.GetMouseButtonDown(0)) { for(int i=0,cnt = datas.Count;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3