private PanelUnit GetPanelInCache(string panelName) { PanelUnit panelUnit = null; if (null != dicPanels) { dicPanels.TryGetValue(panelName, out panelUnit); } return(panelUnit); }
public void ClosePanel() { PanelUnit panelUnit = stackShownPanels.Peek(); if (null != panelUnit) { IUIAction uIAction = panelUnit as IUIAction; uIAction.Close(); PanelMoveOut(uIAction); stackShownPanels.Pop(); } }
public void OpenPanel <T>() where T : PanelUnit, new() { IUIAction uIAction = null; string panelName = typeof(T).Name; PanelUnit panelUnit = GetPanelInCache(panelName); if (null == panelUnit) { T t = new T(); panelUnit = t as PanelUnit; GameObject panel = LoadModule.Ins.Load <GameObject>(ResEnum.UI, panelName); uIAction = t as IUIAction; uIAction.root = panel; uIAction.Init(); } else { uIAction = panelUnit as IUIAction; } uIAction.Refresh(); stackShownPanels.Push(panelUnit); PanelMoveIn(panelUnit); }