/// <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); } }
/// <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); } }