diff options
author | chai <chaifix@163.com> | 2022-04-23 13:24:05 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-04-23 13:24:05 +0800 |
commit | bdb737230b30e8fb9be63d95b792e8c8ba531ea0 (patch) | |
tree | 9e1fe83c65af581d6b3411bcf1b00af4bde8990a /SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs | |
parent | 747a355b8a7d273264ce1d8f1848633f8fa52c47 (diff) |
* ui staff
Diffstat (limited to 'SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs')
-rw-r--r-- | SurvivalTest/Assets/Scripts/UI/UIManager_Panels.cs | 37 |
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 |