summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-04-23 13:24:05 +0800
committerchai <chaifix@163.com>2022-04-23 13:24:05 +0800
commitbdb737230b30e8fb9be63d95b792e8c8ba531ea0 (patch)
tree9e1fe83c65af581d6b3411bcf1b00af4bde8990a /SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs
parent747a355b8a7d273264ce1d8f1848633f8fa52c47 (diff)
* ui staff
Diffstat (limited to 'SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs')
-rw-r--r--SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs37
1 files changed, 32 insertions, 5 deletions
diff --git a/SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs b/SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs
index 049f733..d29c24a 100644
--- a/SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs
+++ b/SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs
@@ -1,18 +1,27 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
+using UnityEngine.UI;
public enum PanelType
{
- None,
+ None,
- PanelLevelBar,
+ PanelLevelBar,
PanelItemBar,
}
public partial class UIManager : Singleton<UIManager>
{
private Dictionary<PanelType, string> m_Panels = new Dictionary<PanelType, string>();
+ private Dictionary<PanelType, PanelBase> m_OpenedPanels = new Dictionary<PanelType, PanelBase>();
+
+ private Canvas m_Canvas;
+
+ public void SetRootCanvas(Canvas canvas)
+ {
+ m_Canvas = canvas;
+ }
void SetPanels()
{
@@ -25,9 +34,27 @@ public partial class UIManager : Singleton<UIManager>
m_Panels.Add(type, "prefabs/ui/" + path);
}
- void OpenPanel(PanelType type, object param)
+ public PanelBase OpenPanel(PanelType type, object param = null)
{
-
+ if(m_OpenedPanels.ContainsKey(type))
+ {
+ return m_OpenedPanels[type];
+ }
+
+ PanelBase prefab = ResourceManager.Instance.Load<PanelBase>(m_Panels[type]);
+ if (prefab == null)
+ {
+ Debug.LogError("UI Prefab in not available, path=" + m_Panels[type]);
+ return null;
+ }
+ PanelBase panel = UnityEngine.Object.Instantiate<PanelBase>(prefab);
+ panel.name = prefab.name;
+ panel.transform.SetParent(m_Canvas.transform);
+ panel.Set(param);
+ panel.InitRectTransform();
+ panel.gameObject.SetActive(true);
+
+ return panel;
}
-}
+} \ No newline at end of file