/// <summary> /// 关闭窗体 /// </summary> /// <param name="windowName">窗体名称</param> /// <param name="destroyWindow">是否销毁窗体</param> public void PopWindow(string windowName, bool destroyWindow = false) { Debug.Log(mUIStack.Count); if (mUIStack.Contains(GetWindowByName(windowName))) { UGUIWindowBase temp = mUIStack.Pop(); while (temp.windowInfo.GameObjectName != windowName) { temp.Hide(); if (destroyWindow) { temp.CloseWindow(); manager.CloseWindow(temp); windowIndex.Remove(temp.windowInfo.GameObjectName); } temp = mUIStack.Pop(); } temp.Hide(); if (destroyWindow) { temp.CloseWindow(); manager.CloseWindow(temp); windowIndex.Remove(temp.windowInfo.GameObjectName); } } else { Debug.LogError("UGUIFrameworkStackError: 名称为" + windowName + "的窗口未打开,无法隐藏或关闭!"); } }
public void PopAllWindow(bool destroyWindow = false) { while (mUIStack.Count > 0) { UGUIWindowBase temp = mUIStack.Pop(); temp.Hide(); if (destroyWindow) { temp.CloseWindow(); manager.CloseWindow(temp); windowIndex.Remove(temp.windowInfo.GameObjectName); } } }
public void CloseWindow(UGUIWindowBase window) { window.CloseWindow(); Destroy(window.gameObject); }