前言
上篇是绘制静态柱状图,这篇是将柱状图中最大值作为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中的值进行修改可以达到不一样的比较方式。