예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="content">Content.</param>
        /// <param name="seal">If set to <c>true</c> seal.</param>
        /// <param name="args">Arguments.</param>
        void ShowScreen(Type uiType, bool seal, params object[] args)
        {
            if (CurrentScreen != null && CurrentScreen.State != UIState.BUSY && CurrentScreen.State != UIState.HIDE)
            {
                CurrentScreen.HideMe();
            }

            UIManScreen screen = null;

            if (!screenDict.TryGetValue(uiType, out screen))
            {
                string prefabPath = Path.Combine(GetUIPrefabPath(uiType, false), uiType.Name);
                ResourceFactory.LoadAsync <GameObject> (prefabPath, PreprocessUI, uiType, seal, args);
                return;
            }

            if (!screen.gameObject.activeInHierarchy)
            {
                screen.gameObject.SetActive(true);
            }


            if (screen.useBackground)
            {
                background.gameObject.SetActive(true);
                string bgName = "";
                if (!string.IsNullOrEmpty(config.backgroundRootFolder))
                {
                    int resFolderIndex = config.backgroundRootFolder.LastIndexOf(UIManDefine.RESOURCES_FOLDER);
                    if (resFolderIndex > -1)
                    {
                        bgName = config.backgroundRootFolder.Substring(resFolderIndex + 10);
                    }
                }
                bgName = bgName + screen.backgroundType;
                ResourceFactory.LoadAsync <Texture2D> (bgName, SetScreenBackground);
            }

            BringToFront(screenRoot, screen.transform, 2);

            screen.OnShow(args);
            OnShowUI(screen, args);
            DoAnimShow(screen);

            CurrentScreen = screen;
            if (!seal)
            {
                screenQueue.Add(screen);
            }
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="content">Content.</param>
        /// <param name="seal">If set to <c>true</c> seal.</param>
        /// <param name="args">Arguments.</param>
        void ShowScreen(Type uiType, bool seal, params object[] args)
        {
            if (CurrentScreen != null && CurrentScreen.UIType == uiType)
            {
                return;
            }

            if (CurrentScreen != null && CurrentScreen.State != UIState.BUSY && CurrentScreen.State != UIState.HIDE)
            {
                CurrentScreen.HideMe();
            }

            UIManScreen screen = null;

            if (!screenDict.TryGetValue(uiType, out screen))
            {
                string prefabPath = Path.Combine(GetUIPrefabPath(uiType, false), uiType.Name);
                ResourceFactory.LoadAsync <GameObject> (prefabPath, PreprocessUI, uiType, seal, args);
                return;
            }

            if (screen.useBackground)
            {
                background.gameObject.SetActive(true);
                string bgName = config.backgroundRootFolder + screen.backgroundType;
                ResourceFactory.LoadAsync <Texture2D> (bgName, SetScreenBackground);

                BringToFront(screenRoot, bgTrans, 1);
            }

            BringToFront(screenRoot, screen.transform, 2);

            screen.OnShow(args);
            OnShowUI(screen, args);
            DoAnimShow(screen);

            CurrentScreen = screen;
            if (!seal)
            {
                screenQueue.Add(screen);
            }
        }