mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 实现了抽象对象池系统支持基于键值的对象池管理 - 定义了对象池系统接口和可池化对象接口规范 - 提供了获取、释放和清空对象池的核心功能 - 添加了Godot节点专用的对象池系统抽象类 - 实现了对象在池中生命周期管理的回调机制
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>();
|
||
}
|
||
} |