#define Graph_And_Chart_PRO using UnityEngine; using System.Collections; using ChartAndGraph; [RequireComponent(typeof(RectTransform))] [RequireComponent(typeof(CanvasBarChart))] public class BarContentFiller : MonoBehaviour { public float FixedAxisMarign = 40f; public float FixedGroupSpacing = 25f; public float FixedBarSeperation = 10f; // Use this for initialization void Start() { } void OnValidate() { var bar = GetComponent(); bar.Invalidate(); } public virtual void Match() { var rect = GetComponent(); var totalWidth = rect.rect.width; var bar = GetComponent(); bool Stacked = bar.ViewType == BarChart.BarType.Stacked; int columnCount = bar.DataSource.TotalCategories; int rowCount = bar.DataSource.TotalGroups; int rowLimit = rowCount - 1; double groupSize = (totalWidth - FixedAxisMarign * 2 - FixedGroupSpacing * rowLimit) / rowCount; double groupSeperation = groupSize + FixedGroupSpacing; double barSize = (groupSize - FixedBarSeperation * (columnCount - 1)) / columnCount; if (Stacked) barSize = groupSize; bar.AxisSeperation = FixedAxisMarign; if (Stacked) bar.BarSeperation = 0; else bar.BarSeperation = FixedBarSeperation + (float)barSize; bar.GroupSeperation = (float)groupSeperation; bar.BarSize = (float)barSize;// (float)(RatioBarSize * factor); } // Update is called once per frame void Update() { } }