GeWuYou b505ef5dff feat(ui): 更新UI系统接口和实现
- 在IUiPageBehavior接口中添加Layer和IsReentrant属性
- 将IUiRouter的Show方法返回类型从void改为UiHandle
- 修改Hide、Resume、GetFromLayer等方法参数从uiKey改为UiHandle
- 新增UiHandle结构体用于唯一标识和管理UI实例
- 在CanvasItemUiPageBehavior中实现Layer和IsReentrant属性
2026-02-07 21:02:21 +08:00

50 lines
1.6 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.

// Copyright (c) 2026 GeWuYou
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using GFramework.Game.Abstractions.enums;
namespace GFramework.Game.Abstractions.ui;
/// <summary>
/// 表示一个UI句柄用于唯一标识和管理UI实例。
/// </summary>
public readonly struct UiHandle
{
/// <summary>
/// 获取UI实例的唯一标识符。
/// </summary>
public string InstanceId { get; }
/// <summary>
/// 获取UI的键值通常用于标识UI的类型或名称。
/// </summary>
public string Key { get; }
/// <summary>
/// 获取UI所在的层级用于控制UI的显示顺序。
/// </summary>
public UiLayer Layer { get; }
/// <summary>
/// 初始化一个新的UiHandle实例。
/// </summary>
/// <param name="key">UI的键值用于标识UI的类型或名称。</param>
/// <param name="instanceId">UI实例的唯一标识符。</param>
/// <param name="layer">UI所在的层级用于控制UI的显示顺序。</param>
internal UiHandle(string key, string instanceId, UiLayer layer)
{
Key = key;
InstanceId = instanceId;
Layer = layer;
}
}