Aimbot-ParallelEnv/Assets/Script/UI/WorldUIController.cs

64 lines
2.0 KiB
C#

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<Line>(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;
}
}
}