/// <summary> /// 打开界面 /// </summary> public void OpenWindow(UiWindowName uiWindowName) { BaseWindow bw = null; if (uiStack.Count > 0) { bw = uiStack.Peek(); bw.OnPause(); uiPackageManager.UnloadAssets(bw.menuInfo.PackageName); } bw = GetWindowInfo(uiWindowName); if (bw == null) { Debug.LogError("无法获得窗体信息,请检查是否打开了资源包中不存在的窗体。错误代码:AA0013"); #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false; #endif return; } if (!openWindowList.Contains(bw)) { uiStack.Push(bw); uiPackageManager.ReloadAssets(bw.menuInfo.PackageName); bw.OnBeforeEnter(); bw.OnEnter(); openWindowList.Add(bw); } else { uiPackageManager.ReloadAssets(bw.menuInfo.PackageName); bw.OnShow(); } }
public void ShowWindow(UiWindowName name) { foreach (UiWindow uiWin in uiWins) { try { if (uiWin.Name == name) { uiWin.Window.SetActive(true); } else { uiWin.Window.SetActive(false); } if (name == UiWindowName.MainWindow) { SetMaxLevelValueToText(); backToMainMenuButton.gameObject.SetActive(false); } else { backToMainMenuButton.gameObject.SetActive(true); } } catch { } } }
/// <summary> /// 通过UIWindowType获取WindowInfo /// </summary> /// <param name="uiWindowType">窗体类型</param> /// <returns>该窗体的信息</returns> public BaseWindow GetWindowInfo(UiWindowName uiWindowName) { foreach (var item in windowList) { if (item.menuInfo.UiWindowName == uiWindowName) { return(item); } } return(null); }
/// <summary> /// 暂时隐藏界面界面 /// </summary> public void HideWindow(UiWindowName uiWindowName) { BaseWindow bw = GetWindowInfo(uiWindowName); while (true && uiStack.Count > 0) { bw = uiStack.Pop(); bw.OnConceal(); uiPackageManager.UnloadAssets(bw.menuInfo.PackageName); if (bw.menuInfo.UiWindowName == uiWindowName) { break; } } if (uiStack.Count >= 1) { bw = uiStack.Peek(); uiPackageManager.ReloadAssets(bw.menuInfo.PackageName); bw.OnResume(); } }