mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
- 移除多余using语句和空行,统一代码缩进格式 - 优化注释文档中的缩进和对齐格式 - 简化条件语句和方法实现,提升代码可读性 - 重构协程系统相关类的字段和方法定义格式 - 更新架构服务中容器访问方式的实现 - 调整异步操作类的属性和方法组织结构 - [skip ci]
32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
using GFramework.Core.pool;
|
||
using Godot;
|
||
|
||
namespace GFramework.Godot.pool;
|
||
|
||
/// <summary>
|
||
/// 抽象节点对象池系统,用于管理Godot节点类型的对象池
|
||
/// </summary>
|
||
/// <typeparam name="TKey">用作键的类型,必须不为null</typeparam>
|
||
/// <typeparam name="TNode">节点类型,必须继承自Node并实现IPoolableNode接口</typeparam>
|
||
public abstract class AbstractNodePoolSystem<TKey, TNode>
|
||
: AbstractObjectPoolSystem<TKey, TNode>
|
||
where TKey : notnull
|
||
where TNode : Node, IPoolableNode
|
||
{
|
||
/// <summary>
|
||
/// 加载场景的抽象方法
|
||
/// </summary>
|
||
/// <param name="key">用于标识场景的键</param>
|
||
/// <returns>加载的PackedScene对象</returns>
|
||
protected abstract PackedScene LoadScene(TKey key);
|
||
|
||
/// <summary>
|
||
/// 创建新节点实例的重写方法
|
||
/// </summary>
|
||
/// <param name="key">用于创建节点的键</param>
|
||
/// <returns>创建的新节点实例</returns>
|
||
protected override TNode Create(TKey key)
|
||
{
|
||
return LoadScene(key).Instantiate<TNode>();
|
||
}
|
||
} |