public void ShowPanel(UIType type, object data = null, UIPanleType panelType = UIPanleType.eFrame, params object[] objs) { UIPanel panel = null; if (panelType == UIPanleType.eFrame) { // 1、是否显示中 if (_displayPanels.TryGetValue(type, out panel)) { // 显示中 return; } // 2、是否缓存 if (!_allPanels.TryGetValue(type, out panel)) { // 3、需要加载 panel = LoadPanel(type, panelType); } if (panel != null) { _displayPanels.Add(type, panel); } } else if (panelType == UIPanleType.eWindow) { if (!_allPanels.TryGetValue(type, out panel)) { panel = LoadPanel(type, panelType); } if (panel != null) { _popStack.Push(panel); } } if (panel != null) { panel.OnEnter(data, objs); panel.Display(); //panel.RefreshView(); } }
public UIPanel LoadPanel(UIType type, UIPanleType panelType) { UIConfig config; if (_define.type2configDict.TryGetValue(type, out config)) { GameObject prefab = ResMgr.Instance.Load(config.prefabPath); UIPanel panel = System.Activator.CreateInstance(System.Type.GetType(config.scriptName)) as UIPanel; if (panel == null) { // TODO log支持 return(null); } prefab.SetActive(false); panel.Init(prefab, type, panelType); return(panel); } // TODO log支持 return(null); }
public void ShowPanel(UIType type, UIPanleType panelType = UIPanleType.eFrame) { ShowPanel(type, null, panelType); }