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