using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; public class CopyScenePanelCtr : MonoBehaviour { #region static public static void ShowCopyScene() { UIManager.ShowUI(UIInfo.CopyScenePanelCtr); } public static void ShowCopyScenePage(string pageStr, string tagStr) { int page = int.Parse(pageStr); int tag = int.Parse(tagStr); UIManager.ShowUI(UIInfo.CopyScenePanelCtr, (sucess, param)=> { CopyScenePanelCtr.Instance.ShowPage(page); CopyScenePanelCtr.Instance.OnMenuItemClick(page, tag); }); } #endregion private int _UnLockTestingCopyLevel; public GameObject _TestingUnLockPanel; public GameObject _TestingLockPanel; public List remainTimeIconList; public List reaminTimeTextList; public static CopyScenePanelCtr Instance; private void Awake() { GetUnLockLevel(); } private void OnEnable() { Instance = this; ShowDefaultFirst(); ShowRemainTimeIcon(); } private void OnDisable() { Instance = null; } public void ShowRemainTimeIcon() { for (int index = 0; index < GameManager.gameManager.PlayerDataPool.FunctionRemainTimeStateManager.copyBaseRemainTimeStateList.Length; index++) { int totalTime = GameManager.gameManager.PlayerDataPool.FunctionRemainTimeStateManager.copyBaseRemainTimeStateList[index].totalRemainTimes; remainTimeIconList[index].SetActive(totalTime > 0); if (remainTimeIconList[index].gameObject.activeInHierarchy) { reaminTimeTextList[index].text = (totalTime >= 99 ? 99 : totalTime).ToString(); } } } //遍历取最小值,最小值即为解锁等级 private void GetUnLockLevel() { var testingCopyBaseTab = GCGame.Table.TableManager.GetTestingCopy().Values; var lowLevel = 999; foreach(var info in testingCopyBaseTab) { if(info.UnlockLevel <= lowLevel) { lowLevel = info.UnlockLevel; } } if (lowLevel != 999) _UnLockTestingCopyLevel = lowLevel; } void ShowDefaultFirst() { if (menuItemList.Count > 0) { menuItemList[0].OnMenuItemClick(); } JudgeMenuItemState(); } public void JudgeMenuItemState() { _TestingUnLockPanel.SetActive(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level >= _UnLockTestingCopyLevel); _TestingLockPanel.SetActive(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level < _UnLockTestingCopyLevel); } public void OnLockItemClick() { GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{65004}")); } public List menuItemList; public List pageList; public void OnMenuItemClick(int _Index, int _subIndex = -1) { ShowPage(_Index); switch (_Index) { case 0: if (DailyCopySceneRootCtr.Instance != null && DailyCopySceneRootCtr.Instance.gameObject.activeInHierarchy) { DailyCopySceneRootCtr.Instance.ShowPage(_subIndex); } break; case 1: if (_subIndex != -1) { pageList[1].GetComponent()._Select.OnToggleClick(_subIndex); } break; case 2: { if (AdvanceCopySceneRootCtr.Instance) AdvanceCopySceneRootCtr.Instance.SetPositionIndex(_subIndex + 1); } break; default: break; } } public void ShowPage(int _Index) { for (int index = 0; index < menuItemList.Count; index++) { menuItemList[index].markIcon.SetActive(index == _Index ? true : false); menuItemList[index].originObj.SetActive(index == _Index ? false : true); pageList[index].SetActive(index == _Index ? true : false); } } public void OnCloseBtnClick() { UIManager.CloseUI(UIInfo.CopyScenePanelCtr); } }