using GFramework.Core.events;
using Godot;
namespace GFramework.Core.Godot.extensions;
///
/// 提供取消注册扩展方法的静态类
///
public static class UnRegisterExtension
{
///
/// 当节点退出场景树时自动取消注册监听器
///
/// 需要在节点退出时被取消注册的监听器接口实例
/// Godot节点对象,当该节点退出场景树时触发取消注册操作
/// 返回传入的原始IUnRegister实例,支持链式调用
public static IUnRegister UnRegisterWhenNodeExitTree(this IUnRegister unRegister, Node node)
{
// 监听节点的TreeExiting事件,在节点即将退出场景树时执行取消注册操作
node.TreeExiting += unRegister.UnRegister;
return unRegister;
}
}