using System.Collections; using System.Collections.Generic; using System.Linq; using TMPro; using UnityEngine; using UnityEngine.UI; using UnityEngine.UIElements; using Button = UnityEngine.UI.Button; using Image = UnityEngine.UI.Image; using Toggle = UnityEngine.UI.Toggle; using ScrollView = PhxhSDK.PhxhScrollView; using Framework; public class UI_PVPMainController : UIWindow { //UI GameObj ///Auto Gen Start/// public Button Button_EnemyInfo_0; public Button Button_EnemyInfo_1; public Button Button_EnemyInfo_2; public TMP_Text Text_Score; public TMP_Text Text_Order; ///Auto Gen End/// private List _enemies = new(); // Use this for initialization public override void OnAwake() { //bind UI GameObj UI_PVPMainBinder.GetComponents(this); PVPManager.Instance.GetPVPInformation(); BindButton("Button_Back/Button_back",OnClickBack); BindButton("Button_Back/Button_Home",OnClickBack); RegisterEvent(); } private void RegisterEvent() { EventManager.Instance.Register(EventManager.EventName.OnGetPVPInformation, Refresh); } private void UnRegisterEvent() { EventManager.Instance.Unregister(EventManager.EventName.OnGetPVPInformation, Refresh); } private void OnClickBack() { CloseWindow(UIWindowCloseType.HideAndDestroy); } private void Refresh() { Text_Score.text = PVPManager.Instance.score.ToString(); Text_Order.text = PVPManager.Instance.order.ToString(); _enemies = PVPManager.Instance.Enemies.ToList(); RenderButtonEnemyInfo(Button_EnemyInfo_0, _enemies[0]); RenderButtonEnemyInfo(Button_EnemyInfo_1, _enemies[1]); RenderButtonEnemyInfo(Button_EnemyInfo_2, _enemies[2]); } private void RenderButtonEnemyInfo(Button btn, PVPEnemyInfo enemyInfo) { var score = btn.transform.Find("score").GetComponent(); var order = btn.transform.Find("order").GetComponent(); var nickName = btn.transform.Find("nickName").GetComponent(); score.text = enemyInfo.score.ToString(); order.text = enemyInfo.order.ToString(); nickName.text = enemyInfo.nickName; btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => { PVPManager.Instance.StartPVPFight(enemyInfo.actorID); }); } //invoke when open window protected override void OnOpenWindow(object data = null) { Refresh(); } //invoke when reload window protected override void OnReloadWindow(object data = null) { Refresh(); } //invoke when close window protected override void OnCloseWindow() { UnRegisterEvent(); } }