using System; using UnityEngine; using XCharts.Runtime; public class WorldUIController : MonoBehaviour { [SerializeField] private LineChart winChart; public int[] totalGames; public int[] winGames; private int maxXAxis = 0; // Start is called before the first frame update private void Start() { totalGames = new int[(int)Targets.Num]; winGames = new int[(int)Targets.Num]; Array.Clear(totalGames, 0, (int)Targets.Num); Array.Clear(winGames, 0, (int)Targets.Num); //WinChart.Init(); winChart.RemoveData(); for (int i = 0; i < (int)Targets.Num; i++) { string lineName = Enum.GetName(typeof(Targets), i); winChart.AddSerie(lineName); } } public void UpdateChart(Targets targetType, int endType) { float winRatio = 0f; int targetTypeInt = (int)targetType; switch (endType) { case (int)TargetController.EndType.Win: //Win totalGames[targetTypeInt] += 1; winGames[targetTypeInt] += 1; winRatio = (float)winGames[targetTypeInt] / totalGames[targetTypeInt]; winChart.AddData(targetTypeInt, winRatio); if (totalGames[targetTypeInt] > maxXAxis) { maxXAxis = totalGames[targetTypeInt]; winChart.AddXAxisData(Convert.ToString(maxXAxis)); } break; case (int)TargetController.EndType.Lose: //lose totalGames[targetTypeInt] += 1; winRatio = (float)winGames[targetTypeInt] / totalGames[targetTypeInt]; winChart.AddData(targetTypeInt, winRatio); if (totalGames[targetTypeInt] > maxXAxis) { maxXAxis = totalGames[targetTypeInt]; winChart.AddXAxisData(Convert.ToString(maxXAxis)); } break; default: break; } } }