UI系统优化

This commit is contained in:
2026-05-25 11:54:37 +08:00
parent c7057db27d
commit 3c812cfb41
130 changed files with 4738 additions and 477 deletions

View File

@@ -0,0 +1,23 @@
using UnityEngine;
namespace BaseGames.UI
{
/// <summary>
/// 面板栈管理接口。所有需要操作 UI 面板的组件应依赖此接口而非直接引用
/// <see cref="UIManager"/>,从而保持可测试性和解耦合。
/// </summary>
public interface IUIManager
{
/// <summary>通过枚举 ID 打开已注册面板。</summary>
void OpenPanel(PanelId id);
/// <summary>打开指定 GameObject 面板并压栈已在栈中则忽略O(1) 判断)。</summary>
void OpenPanel(GameObject panel);
/// <summary>关闭栈顶面板并恢复上一层;上一层若实现 <see cref="IFocusable"/> 则自动恢复焦点。</summary>
void CloseTopPanel();
/// <summary>运行时注册或覆盖面板绑定(如场景加载后动态添加的面板)。</summary>
void RegisterPanel(PanelId id, GameObject root);
}
}