using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using XCharts.Runtime; /*????UI*/ public class UIController : MonoBehaviour { [Header("Key Viewer")] public int updateStep = 600; public Text upText; public Text downText; public Text leftText; public Text rightText; public Text shootText; public Text MouseText; public Text remainTimeText; public Text remainEnemyText; public Image mouseVisualizationBG; public Image mouseVisualizationMeter; [Header("Reward Viewer")] public Text nonRewardText; public Text shootRewardText; public Text shootWithoutReadyRewardText; public Text hitRewardText; public Text winRewardText; public Text loseRewardText; public Text killRewardText; [Header("X_Charts")] public GameObject realTimeRewardChartOBJ; public GameObject realTimeKeyCounterChartOBJ; public GameObject EPTotalRewardsChartOBJ; [Header("Other Para")] public float mouseMaxMovement = 15; private LineChart realTimeRewardChart; private BarChart realTimeKeyCounterChart; private LineChart EPTotalRewardsChart; //-----------RewardViewer-------- public void updateRewardViewer(float nonReward, float shootReward, float shootWithoutReadyReward, float hitReward, float winReward, float loseReward, float killReward) { nonRewardText.text = Convert.ToString(nonReward); shootRewardText.text = Convert.ToString(shootReward); shootWithoutReadyRewardText.text = Convert.ToString(shootWithoutReadyReward); hitRewardText.text = Convert.ToString(hitReward); winRewardText.text = Convert.ToString(winReward); loseRewardText.text = Convert.ToString(loseReward); killRewardText.text = Convert.ToString(killReward); } //------------RemainTime---------- public void updateRemainTime(int remainTime) { remainTimeText.text = Convert.ToString(remainTime); } //------------RemainEnemy--------- public void updateRemainEnemy(int enemyNum) { remainEnemyText.text = Convert.ToString(enemyNum); } //------------Key Viewer---------- public void updateWASDKeyViewer(int vertical,int horizontal) { if (vertical == 1) { upText.color = Color.red; downText.color = Color.black; } else if (vertical == -1) { downText.color = Color.red; upText.color = Color.black; } else { downText.color = Color.black; upText.color = Color.black; } if (horizontal == 1) { rightText.color = Color.red; leftText.color = Color.black; } else if (horizontal == -1) { leftText.color = Color.red; rightText.color = Color.black; } else { downText.color = Color.black; upText.color = Color.black; } } public void updateShootKeyViewer(int shoot,bool isGunReady) { if(shoot != 0 && isGunReady == true) { shootText.color = Color.red; } else if(shoot != 0 && isGunReady == false) { shootText.color = Color.yellow; } else { shootText.color = Color.black; } } public void updateMouseMovementViewer(float Mouse_x) { MouseText.text = Mouse_x.ToString(); float mouseBGWidth = mouseVisualizationBG.GetComponent().sizeDelta.x; float mouseBGPosX = mouseVisualizationBG.GetComponent().position.x; float mouseBGPosY = mouseVisualizationBG.GetComponent().position.y; float mouseMeterWidth = mouseBGWidth * Mouse_x / mouseMaxMovement; float mouseMeterPositionOffset = mouseMeterWidth / 2; mouseVisualizationMeter.rectTransform.sizeDelta = new Vector2(Math.Abs(mouseMeterWidth),mouseVisualizationMeter.GetComponent().sizeDelta.y); mouseVisualizationMeter.rectTransform.position = new Vector3(mouseBGPosX + mouseMeterPositionOffset, mouseBGPosY, 0); } // ------------X Chart------------ // Initialize Chart UI public void iniChart() { realTimeRewardChart = realTimeRewardChartOBJ.GetComponent(); resetStepChart(); realTimeKeyCounterChart = realTimeKeyCounterChartOBJ.GetComponent(); resetCounterChat(); EPTotalRewardsChart = EPTotalRewardsChartOBJ.GetComponent(); resetEPChart(); } // Resert------------ // reset setp by setp update Chart public void resetStepChart() { realTimeRewardChart.RemoveData(); realTimeRewardChart.AddSerie("RealTimeRewardChart"); } // reset keyCounter Chart public void resetCounterChat() { realTimeKeyCounterChart.RemoveData(); realTimeKeyCounterChart.AddSerie("RealTimeKeyCounterChart"); realTimeKeyCounterChart.AddXAxisData("W"); realTimeKeyCounterChart.AddXAxisData("S"); realTimeKeyCounterChart.AddXAxisData("A"); realTimeKeyCounterChart.AddXAxisData("D"); realTimeKeyCounterChart.AddXAxisData("Pew"); realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "W"); realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "S"); realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "A"); realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "D"); realTimeKeyCounterChart.AddData("RealTimeKeyCounterChart", 0, "Pew"); } // reset EP by EP update Chart public void resetEPChart() { EPTotalRewardsChart.RemoveData(); EPTotalRewardsChart.AddSerie("EPTotalRewardsChart"); } // Update------------ // update setp by setp update Type Chart public void stepUpdateChart(int step, float reward) { if(step % updateStep == 0) { resetStepChart(); } realTimeRewardChart.AddXAxisData(Convert.ToString(step)); realTimeRewardChart.AddData(0,reward); } // update KeyCounter chart public void updateKeyCounterChart(int kWCount, int kSCount, int kACount, int kDCount,int shootCount) { realTimeKeyCounterChart.UpdateData(0, 0, kWCount); realTimeKeyCounterChart.UpdateData(0, 1, kSCount); realTimeKeyCounterChart.UpdateData(0, 2, kACount); realTimeKeyCounterChart.UpdateData(0, 3, kDCount); realTimeKeyCounterChart.UpdateData(0, 4, shootCount); } // update EP by EP update Type Chart public void epUpdateChart(int EP,float totalReward) { EPTotalRewardsChart.AddXAxisData(Convert.ToString(EP)); EPTotalRewardsChart.AddData(0,totalReward); } }