using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class UIManager : MonoBehaviour
{
private const string UIPrefabPath = "Prefabs/";
private Dictionary<string, GameObject> PanelsPool = new Dictionary<string, GameObject>();
public Transform UIRoot;
void Awake()
{
instance = this;
DontDestroyOnLoad(this.gameObject);
}
void Start()
{
}
public GameObject ShowPanel(string panelName, int priority = 0)
{
GameObject panel = GetPanel(panelName);
if (null == panel)
{
GameObject obj = Resources.Load(UIPrefabPath + panelName, typeof(GameObject)) as GameObject;
if (obj == null)
{
Debug.Log("Resource/" + UIPrefabPath + panelName + " don't exist!");
return null;
}
panel = Instantiate(obj) as GameObject;
panel.transform.parent = UIRoot;
panel.transform.localScale = Vector3.one;
panel.transform.localPosition = Vector3.zero + Vector3.forward * -priority;
PanelsPool.Add(panelName, panel);
}
panel.SetActive(true);
if (priority > 0)
{
panel.transform.localPosition = Vector3.zero + Vector3.forward * -priority;
}
return panel;
}
public void HidePanel(string panelName, bool isDestroy = false)
{
GameObject panel = GetPanel(panelName);
if (null == panel)
{
Debug.Log("Can't HidePanel : " + panelName + " Because it not exist!");
return;
}
if (isDestroy)
{
PanelsPool.Remove(panelName);
Destroy(panel);
}
else if (panel.activeSelf)
{
panel.SetActive(false);
}
}
public void HideAllPanel()
{
foreach (GameObject child in PanelsPool.Values)
{
child.SetActive(false);
}
}
public GameObject GetPanel(string panelName)
{
return PanelsPool.ContainsKey(panelName) ? PanelsPool[panelName] : null;
}
public bool IsPanelActive(string panelName)
{
GameObject panel = GetPanel(panelName);
return panel == null ? false : panel.activeSelf;
}
public static UIManager instance;
}
using System.Collections;
using System.Collections.Generic;
public class UIManager : MonoBehaviour
{
private const string UIPrefabPath = "Prefabs/";
private Dictionary<string, GameObject> PanelsPool = new Dictionary<string, GameObject>();
public Transform UIRoot;
void Awake()
{
instance = this;
DontDestroyOnLoad(this.gameObject);
}
void Start()
{
}
public GameObject ShowPanel(string panelName, int priority = 0)
{
GameObject panel = GetPanel(panelName);
if (null == panel)
{
GameObject obj = Resources.Load(UIPrefabPath + panelName, typeof(GameObject)) as GameObject;
if (obj == null)
{
Debug.Log("Resource/" + UIPrefabPath + panelName + " don't exist!");
return null;
}
panel = Instantiate(obj) as GameObject;
panel.transform.parent = UIRoot;
panel.transform.localScale = Vector3.one;
panel.transform.localPosition = Vector3.zero + Vector3.forward * -priority;
PanelsPool.Add(panelName, panel);
}
panel.SetActive(true);
if (priority > 0)
{
panel.transform.localPosition = Vector3.zero + Vector3.forward * -priority;
}
return panel;
}
public void HidePanel(string panelName, bool isDestroy = false)
{
GameObject panel = GetPanel(panelName);
if (null == panel)
{
Debug.Log("Can't HidePanel : " + panelName + " Because it not exist!");
return;
}
if (isDestroy)
{
PanelsPool.Remove(panelName);
Destroy(panel);
}
else if (panel.activeSelf)
{
panel.SetActive(false);
}
}
public void HideAllPanel()
{
foreach (GameObject child in PanelsPool.Values)
{
child.SetActive(false);
}
}
public GameObject GetPanel(string panelName)
{
return PanelsPool.ContainsKey(panelName) ? PanelsPool[panelName] : null;
}
public bool IsPanelActive(string panelName)
{
GameObject panel = GetPanel(panelName);
return panel == null ? false : panel.activeSelf;
}
public static UIManager instance;
}