using System.Collections.Generic; using Sirenix.OdinInspector; using SoulliesFramework.General; using UnityEngine; namespace Continentis { public abstract partial class UIManagerBase : Singleton { [Title("UI Prefabs")] public Dictionary uiElementPrefabs = new Dictionary(); public Dictionary uiPagePrefabs = new Dictionary(); [Title("Pages")] public List uiPageList = new List(); // 用于管理UI堆栈 [Title("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; } } }