using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 游戏主界面底部功能按钮 /// public class MainWin : FunctionsBaseWin { //头像区 [SerializeField] AvatarCell avatarCell; [SerializeField] Text playerNameText; [SerializeField] Text powerText; [SerializeField] OfficialTitleCell officialRankText; [SerializeField] Text goldText; [SerializeField] Text sparText; public Text hammerText; protected override void InitComponent() { base.InitComponent(); avatarCell.button.AddListener(() => { }); } public override void Refresh() { UpdateCurrency(); UpdatePlayerInfo(); } protected override void OnPreOpen() { PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; base.OnPreOpen(); // 刷新UI Refresh(); } protected override void OnPreClose() { PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh; base.OnPreClose(); } /// /// 更新玩家信息 /// private void UpdatePlayerInfo() { // 从玩家数据中获取信息并更新UI avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID, PlayerDatas.Instance.baseData.face, PlayerDatas.Instance.baseData.facePic)); playerNameText.text = PlayerDatas.Instance.baseData.PlayerName; powerText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPoint); officialRankText.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID); } void PlayerDataRefresh(PlayerDataType type) { switch (type) { case PlayerDataType.FightPower: powerText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPoint); break; case PlayerDataType.RealmLevel: officialRankText.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID); break; case PlayerDataType.Gold: goldText.text = UIHelper.GetMoneyCntEx(1).ToString(); break; case PlayerDataType.default33: sparText.text = UIHelper.GetMoneyCnt(42).ToString(); break; case PlayerDataType.Face: case PlayerDataType.FacePic: avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID, PlayerDatas.Instance.baseData.face, PlayerDatas.Instance.baseData.facePic)); break; case PlayerDataType.default26: hammerText.text = UIHelper.GetMoneyCnt(41).ToString(); break; } } /// /// 更新货币信息 /// private void UpdateCurrency() { hammerText.text = UIHelper.GetMoneyCnt(41).ToString(); goldText.text = UIHelper.GetMoneyCntEx(1).ToString(); sparText.text = UIHelper.ReplaceLargeNumEx(UIHelper.GetMoneyCnt(42)); } /// /// 底部标签按钮点击 /// protected override void OnTabButtonClicked(int index) { if (index == 0) { if (currentSubUI != null && currentSubUI.name == "HomeWin") { //打开主界面的情况下再点击按钮,执行攻击逻辑 } } SelectBottomTab(index); } /// /// 更新按钮状态 /// protected override void UpdateButtonsState() { // 遍历所有按钮,设置选中状态 // for (int i = 0; i < tabButtons.Length; i++) // { // // bottomTabButtons[i].image.color = (i == currentTabIndex) ? Color.white : Color.gray; // } } /// /// 根据标签索引打开对应的子界面 /// protected override void OpenSubUIByTabIndex() { Debug.Log("打开子界面 : " + functionOrder); // 主城 内政 武将 挑战 公会 //根据索引打开不同的界面 switch (functionOrder) { case 0: // 打开主页界面 currentSubUI = UIManager.Instance.OpenWindow(); Debug.Log("打开主城界面"); break; case 1: // currentSubUI = UIManager.Instance.OpenUI(); Debug.Log("打开内政界面"); break; case 2: currentSubUI = UIManager.Instance.OpenWindow(0); Debug.Log("打开武将界面"); break; case 3: // currentSubUI = UIManager.Instance.OpenUI(); Debug.Log("打开挑战界面"); break; case 4: //currentSubUI = UIManager.Instance.OpenWindow(); Debug.Log("打开公会界面"); break; default: Debug.LogWarning("未知的标签索引: " + functionOrder); break; } } }