24 lines
918 B
C#
24 lines
918 B
C#
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);
|
||
}
|
||
}
|