Пример #1
0
    public IWindowBase Open(UGUI_TYPE uiType, UGUI_TYPE parentUIType = UGUI_TYPE._BEGIN)
    {
        IWindowBase uiwindow;

        m_loadedWindow.TryGetValue(uiType, out uiwindow);
        if (uiwindow == null)
        {
            uiwindow = CreateWindow(uiType);
            if (uiwindow == null)
            {
                return(null);
            }
            if (!uiwindow.Is3D())
            {
                m_root2D.Add(uiwindow);
            }
        }
        else
        {
            m_root2D.SortChildLayer(uiwindow); //还未销毁,就重新排序
        }

        uiwindow.Open();
        if (!uiwindow.Is3D())
        {
            UIBase2D uibase2D = uiwindow as UIBase2D;
            if (uibase2D.Getlayer() == UGUI_LAYER.MENU)
            {
                SetMainUIActive(false);
            }
        }
        HideMainCamera();
        if (parentUIType != UGUI_TYPE._BEGIN)
        {
            ParentUIStruct parentUI = new ParentUIStruct();
            parentUI.ParentUI = parentUIType;
            parentUI.ChildUI  = uiType;
            m_ParentUI.Push(parentUI);
        }
        return(uiwindow);
    }