Example #1
0
    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();
        }
    }
Example #2
0
    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);
    }
Example #3
0
 public void ShowPanel(UIType type, UIPanleType panelType = UIPanleType.eFrame)
 {
     ShowPanel(type, null, panelType);
 }