예제 #1
0
    /// <summary>
    /// 更改面板状态
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="windowTypeEnum"></param>
    /// <param name="showModeEnum"></param>
    public static T ChangePanelState <T>(WindowTypeEnum windowTypeEnum, UIPanelStateEnum panelStateEnum) where T : BasePanel
    {
        T t = default(T);

        t = GetPanel <T>(windowTypeEnum);
        if (t)
        {
            switch (panelStateEnum)
            {
            case UIPanelStateEnum.Open:
                t.Open();
                break;

            case UIPanelStateEnum.Hide:
                t.Hide();
                break;

            default:
                break;
            }
        }
        else
        {
            Debug.Log("面板不存在" + windowTypeEnum + "窗口中");
        }
        return(t);
    }
예제 #2
0
    /// <summary>
    /// 创建面板
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="windowTypeEnum"></param>
    /// <returns></returns>
    public static T CreatePanel <T>(WindowTypeEnum windowTypeEnum, UIPanelStateEnum panelStateEnum = UIPanelStateEnum.Open) where T : BasePanel
    {
        T t = default(T);

        t = GetPanel <T>(windowTypeEnum);
        if (t == null)
        {
            T[] ts = Resources.LoadAll <T>("UIPanel");
            if (ts.Length > 0)
            {
                t = SourcesManager.LoadSources <T>(ts[0], windowsDic[windowTypeEnum].transform);
                if (!PanelDic.ContainsKey(windowTypeEnum))
                {
                    PanelDic.Add(windowTypeEnum, new List <BasePanel> {
                        t
                    });
                }
                else
                {
                    PanelDic[windowTypeEnum].RemoveNull();
                    PanelDic[windowTypeEnum].Add(t);
                }
            }
            else
            {
                Debug.Log("资源中不存在" + t.GetType().Name);
            }
        }
        switch (panelStateEnum)
        {
        case UIPanelStateEnum.Open:
            t.Open();
            break;

        case UIPanelStateEnum.Hide:
            t.Hide();
            break;

        default:
            break;
        }
        return(t);
    }