mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 定义了IPageBehavior接口,提供UI页面的生命周期方法如OnEnter、OnExit、OnPause、OnResume等 - 创建了IUiFactory接口用于创建UI页面实例,以及IUiPage接口定义页面基本操作 - 添加了IUiPageEnterParam接口用于定义页面跳转参数数据结构 - 实现了IUiRouter接口提供页面栈管理功能,支持Push、Pop、Replace、Clear等操作 - 创建了UI切换处理器相关接口和实现,包括IUiTransitionHandler和UiTransitionPipeline - 添加了UI切换事件系统,支持BeforeChange和AfterChange两个执行阶段 - 实现了日志记录处理器LoggingTransitionHandler用于记录UI切换信息 - 定义了多种UI切换策略枚举如UiTransitionPolicy、UiTransitionType等 - 提供了UI注册表接口用于管理UI实例的注册和获取功能
39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using GFramework.Game.Abstractions.enums;
|
||
|
||
namespace GFramework.Game.Abstractions.ui;
|
||
|
||
/// <summary>
|
||
/// UI切换处理器接口,定义UI切换扩展点的处理逻辑
|
||
/// </summary>
|
||
public interface IUiTransitionHandler
|
||
{
|
||
/// <summary>
|
||
/// 处理器优先级,数值越小越先执行
|
||
/// </summary>
|
||
int Priority { get; }
|
||
|
||
/// <summary>
|
||
/// 处理器适用的阶段,默认为所有阶段
|
||
/// 可以使用Flags枚举指定多个阶段
|
||
/// </summary>
|
||
UITransitionPhases Phases { get; }
|
||
|
||
/// <summary>
|
||
/// 判断是否应该处理当前事件
|
||
/// 可以根据事件类型、UI key等信息进行条件过滤
|
||
/// </summary>
|
||
/// <param name="event">UI切换事件</param>
|
||
/// <param name="phases">当前阶段</param>
|
||
/// <returns>是否处理</returns>
|
||
bool ShouldHandle(UiTransitionEvent @event, UITransitionPhases phases);
|
||
|
||
/// <summary>
|
||
/// 处理UI切换事件
|
||
/// </summary>
|
||
/// <param name="event">UI切换事件</param>
|
||
/// <param name="cancellationToken">取消令牌</param>
|
||
/// <returns>异步任务</returns>
|
||
Task HandleAsync(UiTransitionEvent @event, CancellationToken cancellationToken);
|
||
} |