hch
7 天以前 542b1b8fe1731f9fd434019663f35b6d5e2e9b44
Main/Manager/UIManager.cs
@@ -325,7 +325,7 @@
        return false;
    }
    // 检查是否存在任何全屏或遮罩窗口, 暂未定义全屏可以统一勾选openMask
    public bool ExistAnyFullScreenOrMaskWin(string excludeUIName)
    {
@@ -349,6 +349,36 @@
        return exist;
    }
    //在此界面上有没任何全屏或遮罩窗口
    public bool ExistAnyFullScreenOrMaskWinAbove(string uiName)
    {
        var ui = GetUI(uiName);
        if (ui == null || !ui.IsActive())
        {
            // 如果UI不存在或未打开,默认为有被挡住
            return true;
        }
        foreach (var uiBase in uiStack)
        {
            if (uiBase == null)
            {
                continue;
            }
            if (uiBase.name == uiName)
            {
                break;
            }
            if (uiBase.IsActive() && uiBase.openMask)
            {
                return true;
            }
        }
        return false;
    }
    
    // 获取指定类型的所有UI实例
    public List<T> GetAllUI<T>() where T : UIBase
@@ -842,6 +872,10 @@
            {
                tempStack.Push(tempUI);
            }
            else
            {
                break;
            }
        }
        
        // 将临时栈中的UI重新压入栈中
@@ -926,19 +960,6 @@
        }
    }
    public void ReturnMainUI()
    {
        List<UIBase> allUI = new List<UIBase>(uiStack);
        for (int i = 0; i < allUI.Count; i++)
        {
            UIBase uiBase = allUI[i];
            if (!uiBase.isMainUI && uiBase.uiLayer < UILayer.System)
            {
                CloseWindow(uiBase);
            }
        }
    }
    
    /// <summary>
    /// 关闭所有UI