GeWuYou c9f01f5877 feat(ui): 添加UI层级管理和Godot平台实现
- 在IUiRoot接口中添加Z-order控制和页面层级管理功能
- 实现Godot平台的UiRoot,支持UI页面的添加、移除和层级排序
- 添加UiLayer枚举定义不同UI层级(Page、Overlay、Modal、Toast、Topmost)
- 在IUiRouter中扩展层级管理方法,支持指定层级显示UI
- 实现UiRouterBase中的层级管理逻辑,包括显示、隐藏、清空等操作
- 添加对GodotSharp包的引用以支持Godot平台功能
2026-01-20 09:14:37 +08:00

46 lines
1.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections.Generic;
namespace GFramework.Game.Abstractions.ui;
/// <summary>
/// UI根节点接口定义了UI页面容器的基本操作
/// </summary>
public interface IUiRoot
{
/// <summary>
/// 向UI根节点添加子页面
/// </summary>
/// <param name="child">要添加的UI页面子节点</param>
void AddUiPage(IUiPageBehavior child);
/// <summary>
/// 向UI根节点添加子页面到指定层级
/// </summary>
/// <param name="child">要添加的UI页面子节点</param>
/// <param name="zOrder">Z-order值用于控制UI显示层级</param>
void AddUiPage(IUiPageBehavior child, int zOrder = 0);
/// <summary>
/// 从UI根节点移除子页面
/// </summary>
/// <param name="child">要移除的UI页面子节点</param>
void RemoveUiPage(IUiPageBehavior child);
/// <summary>
/// 设置页面的Z-order层级顺序
/// </summary>
/// <param name="page">UI页面</param>
/// <param name="zOrder">Z-order值</param>
void SetZOrder(IUiPageBehavior page, int zOrder);
/// <summary>
/// 获取当前所有显示的页面
/// </summary>
/// <returns>所有显示的页面列表</returns>
IReadOnlyList<IUiPageBehavior> GetVisiblePages();
/// <summary>
/// 强制刷新UI层级排序
/// </summary>
void RefreshLayerOrder();
}