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();
}
}
}