mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
feat(template): 添加UI页面控制器类模板
- 创建PageControllerTemplate.cs模板文件 - 实现IController、IUiPageBehaviorProvider和IUiPage接口 - 添加页面生命周期管理方法(OnEnter、OnExit、OnPause、OnResume、OnShow、OnHide) - 集成CanvasItemUiPageBehavior页面行为实现 - 添加ContextAware和Log注解支持 - 提供页面行为实例的懒加载获取功能
This commit is contained in:
parent
3137c85449
commit
3bc7e84af4
87
Godot/script_templates/Node/PageControllerTemplate.cs
Normal file
87
Godot/script_templates/Node/PageControllerTemplate.cs
Normal file
@ -0,0 +1,87 @@
|
||||
// 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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user