using System.Collections.Generic; using SLSUtilities.General; using UnityEngine; namespace Continentis { public abstract partial class UIManagerBase : Singleton { [Header("UI Prefabs")] public Dictionary uiElementPrefabs = new Dictionary(); public Dictionary uiPagePrefabs = new Dictionary(); [Header("Pages")] public List uiPageList = new List(); // 用于管理UI堆栈 [Header("Canvas")] public Canvas mainCanvas; public RectTransform canvasTransform; } public partial class UIManagerBase { public T ShowPage(string pageName) where T : UIPageBase { GameObject prefab = uiPagePrefabs[pageName]; GameObject uiInstance = Instantiate(prefab, canvasTransform); T page = uiInstance.GetComponent(); page.Initialize(this); page.Show(); // ... 处理层级 ... return page; } } }