Unity3D组件 | 绘制比较柱状图

前言

上篇是绘制静态柱状图,这篇是将柱状图中最大值作为1。其他值根据与最大值的比例进行绘制。

前期准备

Unity3D组件 | 绘制静态柱状图,这篇是从下向上填充柱状图。如果柱状图方向为从左向右,则需将锚点预设在左侧。
在这里插入图片描述
右侧的99.99|99.99将最大值和当前设备实际值进行显示。

脚本代码修改

定义

//在脚本开头使用gameobject定义
//或者可以通过Using UnityEngine.UI;定义image类型将需要控制的柱(image)定义
    public GameObject Pro1;
    public GameObject Pro2;
    public GameObject Pro3;
//定义list,这里的 Value_Down是最终柱的高度;
	List<float> Value_Down = new List<float>(3);

对list进行填充

//将每次需要比较的三个值填入List中
	Value_Down.Add(Down);
	Value_Down.Add(Down1);
	Value_Down.Add(Down1);

填充

//通过每一个值与最大值进行比较,会出现一个比例为1的值,将比例乘150即可将值的范围扩大到0~150,扩大后填充至柱(image)的矩阵变换中。
      Pro1.gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2(Down / Value_Down.Max() * 150, 20);//改变长宽
      Pro2.gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2(Down1 / Value_Down.Max() * 150, 20);//改变长宽
      Pro3.gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2(Down2 / Value_Down.Max() * 150, 20);//改变长宽
      
      // 每次填充结束后将list中的值清除
      List_xia.Clear();

结语

这次是一个填充比较柱状图的方式,对Value_Down中的值进行修改可以达到不一样的比较方式。

猜你喜欢

转载自blog.csdn.net/qq_44879321/article/details/122523186
今日推荐