using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using UnityEngine.UI; /// /// 左上角菜单 /// public class UI_LeftTopMenu : MonoBehaviour { private GameObject btnBack = null; private GameObject btnMain = null; private bool _showMainUI = false; private bool _clickClose = true; private string _closeUIName = ""; private Action _closeAC = null; /// /// 所有的左上角菜单 /// private static Dictionary allLeftTopMenus = new Dictionary(); /// /// 创建 /// /// 父Transform /// 界面主类 /// 关闭时是否显示主界面 /// 关闭回调 public static void Create(Transform parentTran, MonoBehaviour uiClass, string titleName = "", bool closeShowMainUI = false, Action closeAC = null, bool clickClose = true) { ResourceHelper.Instance.LoadAssetBundle("UI_LeftTopMenu", (ab) => { if (ab != null) { GameObject uiObj = Instantiate(ab.LoadAsset("UI_LeftTopMenu"), parentTran); UI_LeftTopMenu leftTopMenu = uiObj.AddComponent(); leftTopMenu.Init(uiClass.GetType().Name, titleName, closeShowMainUI, closeAC, clickClose); if (allLeftTopMenus.ContainsKey(uiClass.GetType().Name)) { allLeftTopMenus[uiClass.GetType().Name] = leftTopMenu; } else { allLeftTopMenus.Add(uiClass.GetType().Name, leftTopMenu); } } }); } /// /// 设置标题 /// /// public static void SetTitle(MonoBehaviour uiClass, string titleName) { if (allLeftTopMenus.ContainsKey(uiClass.GetType().Name) && allLeftTopMenus[uiClass.GetType().Name] != null) { allLeftTopMenus[uiClass.GetType().Name].SetTitle(titleName); } else { Debug.Log("查找左上角菜单失败:"+ uiClass.GetType().Name); } } /// /// 创建 /// /// 父Transform /// 界面主类 /// 关闭时是否显示主界面 /// 关闭回调 public static void Create(Transform parentTran, string closeUIName, string titleName = "", bool closeShowMainUI = false, Action closeAC = null, bool clickClose = true) { ResourceHelper.Instance.LoadAssetBundle("UI_LeftTopMenu", (ab) => { if (ab != null) { GameObject uiObj = Instantiate(ab.LoadAsset("UI_LeftTopMenu"), parentTran); uiObj.AddComponent().Init(closeUIName, titleName, closeShowMainUI, closeAC, clickClose); } }); } /// /// 初始化 /// /// 界面主类 /// 关闭时是否显示主界面 /// 关闭回调 private void Init(string closeUIName, string titleName = "", bool closeShowMainUI = false, Action closeAC = null, bool clickClose = true) { _closeUIName = closeUIName; _showMainUI = closeShowMainUI; _closeAC = closeAC; _clickClose = clickClose; Text title = transform.Find("Title/Text").GetComponent(); if (titleName != "") { title.transform.parent.gameObject.SetActive(true); title.text = titleName; } else { title.transform.parent.gameObject.SetActive(false); title.text = ""; } btnBack = transform.Find("btnClose").gameObject; EventTriggerListener.Get(btnBack).onClick = Close_Click; btnMain = transform.Find("btnMain").gameObject; EventTriggerListener.Get(btnMain).onClick = Main_Click; } /// /// 设置标题 /// /// private void SetTitle(string titleName) { Text title = transform.Find("Title/Text").GetComponent(); if (titleName != "") { title.transform.parent.gameObject.SetActive(true); title.text = titleName; } else { title.transform.parent.gameObject.SetActive(false); title.text = ""; } } /// /// 装备按钮 点击 /// /// 按钮对象 private void Close_Click(GameObject go) { if (_clickClose) { PanelHelper.Instance.ClosePanel(_closeUIName); if (_showMainUI) { PanelHelper.Instance.ShowPanel("UI_BaseMainWindow"); } } if (Entrance_WorldMap.mainUIBuilder != null) { Entrance_WorldMap.mainUIBuilder.gameObject.SetActive(true); Entrance_WorldMap.mainUIBuilder.InitBuilder(); } // 回调 if (_closeAC != null) { _closeAC.Invoke(go); } } /// /// 装备按钮 点击 /// /// 按钮对象 private void Main_Click(GameObject go) { PanelHelper.Instance.CloseAllPanel(); if (GameObject.Find("InWorldMap") == null) { LevelManager.Instance().LoadLevel(E_Level.Main); } else { PanelHelper.Instance.ShowPanel("UI_BaseMainWindow"); Entrance_WorldMap.mainUIBuilder.InitBuilder(); } } }