Exemplo n.º 1
0
    public static UIPageBase Generate(Type type, Transform parentTransform)
    {
        UIPageBase page = TResources.Instantiate <UIPageBase>("UI/Pages/" + type.ToString(), parentTransform);

        page.Init();
        return(page);
    }
Exemplo n.º 2
0
    protected T ShowPage <T>(bool useAnim) where T : UIPageBase
    {
        T page = UIPageBase.Show <T>(tf_OverlayPage, useAnim);

        OnAdjustPageSibling();
        return(page);
    }
Exemplo n.º 3
0
        public virtual void PopPage()
        {
            if (OpenPages.Count > 0)
            {
                var poppedPage = OpenPages[OpenPages.Count - 1];
                if (poppedPage != null)
                {
                    ClosePage(poppedPage);
                }
            }

            if (OpenPages.Count > 0)
            {
                var nextPage = OpenPages[OpenPages.Count - 1];
                if (nextPage != null)
                {
                    SetActivePage(nextPage);
                }
                else
                {
                    ActivePage = null;
                }
            }
            else
            {
                ActivePage = null;
            }
        }
Exemplo n.º 4
0
 protected virtual void OnPageExit(UIPageBase page)
 {
     page.SetActive(false);
     page.transform.SetParent(m_PageStorage);
     page.OnStop();
     m_Pages.Remove(page);
     OnAdjustPageSibling();
 }
Exemplo n.º 5
0
 bool CheckPageStorage(Type type)
 {
     if (!m_PageStored.ContainsKey(type))
     {
         UIPageBase page = UIPageBase.Generate(type, m_PageStorage);
         page.SetActive(false);
         m_PageStored.Add(type, page);
         return(true);
     }
     return(false);
 }
Exemplo n.º 6
0
    public override void OnInspectorGUI()
    {
        UIPageBase ui = (UIPageBase)target;

        EditorGUILayout.BeginHorizontal();
        ui.UseBoxCollider  = GUILayout.Toggle(ui.UseBoxCollider, "阻挡", "button", GUILayout.Width(35));
        ui.UseBlackMask    = GUILayout.Toggle(ui.UseBlackMask, "蒙版", "button", GUILayout.Width(35));
        ui.HideOldPages    = GUILayout.Toggle(ui.HideOldPages, "关旧", "button", GUILayout.Width(35));
        ui.BackPopPrePages = GUILayout.Toggle(ui.BackPopPrePages, "弹旧", "button", GUILayout.Width(35));
        EditorGUILayout.EndHorizontal();
        base.OnInspectorGUI();
    }
Exemplo n.º 7
0
        public void ClosePage(UIPageBase closePage, bool activateNextPage = true)
        {
            if (OpenPages.Remove(closePage) == true)
            {
                if (ActivePage != null && ActivePage.IsScreenActivated == true)
                {
                    ActivePage.OnPageDeactivated(true);
                }

                closePage.OnPageClosed();
            }
        }
Exemplo n.º 8
0
        protected void SetActivePage(UIPageBase newActivePage)
        {
            if (ActivePage != null)
            {
                ActivePage.OnPageDeactivated(newActivePage.HideOldPages);
            }
            ActivePage = newActivePage;
            RectTransform rect = ActivePage.GetComponent <RectTransform>();

            rect.SetAsLastSibling();
            ActivePage.OnPageActivated();
        }
Exemplo n.º 9
0
        public void OpenPage(string page, System.Action <UIPageBase> callback)
        {
            for (int idx = 0; idx < OpenPages.Count; idx++)
            {
                if (OpenPages[idx] != null &&
                    OpenPages[idx].name == page)
                {
                    UIPageBase Page = OpenPages[idx];
                    OpenPages.RemoveAt(idx);
                    OpenPages.Add(Page);
                    callback(Page);
                }
            }

            LoadPage(page, (openPage) =>
            {
                if (openPage != null)
                {
                    OpenPages.Add(openPage);
                    openPage.OnPageOpened();
                }
                callback(openPage);
            });
        }
Exemplo n.º 10
0
 protected void SetPageViewMode(UIPageBase page, bool overlay) => TCommonUI.ReparentRestretchUI(page.rectTransform, overlay ? tf_OverlayPage : tf_CameraPage);
Exemplo n.º 11
0
        public void LoadPage(string page, System.Action <UIPageBase> func, bool hidePage = false)
        {
            for (int idx = 0; idx < LoadedPages.Count; idx++)
            {
                if (LoadedPages[idx] != null &&
                    LoadedPages[idx].name == page)
                {
                    func(LoadedPages[idx]);
                }
            }

            if (!string.IsNullOrEmpty(page))
            {
                string assetName = page + "Page";
                string abName    = AppConst.ResDir + "Prefabs/UI/Page/" + assetName + ".prefab";
                ResManager.LoadPrefab(abName, delegate(UnityEngine.Object[] objs)
                {
                    if (objs.Length == 0)
                    {
                        return;
                    }
                    GameObject newPageGameObject = objs[0] as GameObject;
                    if (newPageGameObject != null)
                    {
                        newPageGameObject = UIUtils.AddChild(PageRoot, newPageGameObject);
                        if (newPageGameObject.activeSelf == true)
                        {
                            Debug.Log("newPageGameObject activity true:" + newPageGameObject.name);
                        }
                        else
                        {
                            Debug.Log("newPageGameObject activity false:" + newPageGameObject.name);
                        }
                        if (newPageGameObject != null)
                        {
                            UIPageBase newPage = newPageGameObject.GetComponent <UIPageBase>();

                            if (newPage != null)
                            {
                                LoadedPages.Add(newPage);
                                // Allow the Page to initialize itself
                                newPage.InitializePage();

                                // Hide the Page if requested
                                if (hidePage == true)
                                {
                                    newPage.HidePage();
                                }

                                func(newPage);
                            }
                            else
                            {
                                Debug.LogWarning("UISystem::LoadPage() Failed to instance new Page with name: " + page);
                            }
                        }
                        else
                        {
                            Debug.LogWarning("UISystem::LoadPage() Failed to add new Page to parent UISystem with name: " + page);
                        }
                    }
                    else
                    {
                        Debug.LogWarning("UISystem::LoadPage() Failed to load new Page with name: " + page);
                    }
                });
            }
            else
            {
                Debug.LogWarning("UISystem::LoadPage() No Page Data for Page with name: " + page);
            }
        }