GFramework/Godot/script_templates/Node/PageControllerTemplate.cs
GeWuYou 3bc7e84af4 feat(template): 添加UI页面控制器类模板
- 创建PageControllerTemplate.cs模板文件
- 实现IController、IUiPageBehaviorProvider和IUiPage接口
- 添加页面生命周期管理方法(OnEnter、OnExit、OnPause、OnResume、OnShow、OnHide)
- 集成CanvasItemUiPageBehavior页面行为实现
- 添加ContextAware和Log注解支持
- 提供页面行为实例的懒加载获取功能
2026-01-17 19:40:24 +08:00

87 lines
2.0 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.

// meta-name: UI页面控制器类模板
// meta-description: 负责管理UI页面场景的生命周期和架构关联
using Godot;
using GFramework.Core.Abstractions.controller;
using GFramework.Core.extensions;
using GFramework.Game.Abstractions.ui;
using GFramework.Godot.ui;
using GFramework.SourceGenerators.Abstractions.logging;
using GFramework.SourceGenerators.Abstractions.rule;
[ContextAware]
[Log]
public partial class _CLASS_ :_BASE_,IController,IUiPageBehaviorProvider,IUiPage
{
/// <summary>
/// 节点准备就绪时的回调方法
/// 在节点添加到场景树后调用
/// </summary>
public override void _Ready()
{
}
/// <summary>
/// 页面行为实例的私有字段
/// </summary>
private IUiPageBehavior? _page;
/// <summary>
/// 获取页面行为实例如果不存在则创建新的CanvasItemUiPageBehavior实例
/// </summary>
/// <returns>返回IUiPageBehavior类型的页面行为实例</returns>
public IUiPageBehavior GetPage()
{
_page ??= new CanvasItemUiPageBehavior<_BASE_>(this);
return _page;
}
/// <summary>
/// 页面进入时调用的方法
/// </summary>
/// <param name="param">页面进入参数,可能为空</param>
public void OnEnter(IUiPageEnterParam? param)
{
_log.Info("测试主菜单 OnEnter");
}
/// <summary>
/// 页面退出时调用的方法
/// </summary>
public void IUiPage.OnExit()
{
}
/// <summary>
/// 页面暂停时调用的方法
/// </summary>
public void IUiPage.OnPause()
{
}
/// <summary>
/// 页面恢复时调用的方法
/// </summary>
public void IUiPage.OnResume()
{
}
/// <summary>
/// 页面显示时调用的方法
/// </summary>
public void IUiPage.OnShow()
{
}
/// <summary>
/// 页面隐藏时调用的方法
/// </summary>
public void IUiPage.OnHide()
{
}
}