HTFramework框架使用手册(六)ReferencePool引用池

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq992817263/article/details/87191712

ReferencePool模块简介

ReferencePool是用于任意引用类型(除GameObject)的对象池,可以复用任意引用类型对象,以达到减少系统在频繁创建和删除对象时的开销。

使用ReferencePool

生成对象

不同于ObjectPool对象池,ReferencePool引用池不需要注册,任意引用类型只需要实现IReference接口,便可以直接通过引用池生成对象。
1.定义一个Test类并实现IReference接口:

public class Test : IReference
{
    public int Value = 0;

    public Test()
    {
        Value = 10;
    }
	
	/// <summary>
    /// 当被引用池回收时重置数据
    /// </summary>
    public void Reset()
    {
        Value = 0;
    }
}

2.生成对象:

        //提取一个 Test 对象
        Test t = Main.m_ReferencePool.Spawn<Test>();

回收对象

当对象不再使用时,回收对象也很简单:

        //提取一个 Test 对象
        Test t = Main.m_ReferencePool.Spawn<Test>();
        //回收对象
        Main.m_ReferencePool.Despawn(t);

设置对象池上限

选中主预制体下的ReferencePool对象,在ReferencePoolManager的属性面板,Limit为限制引用池中单个引用队列的上限,引用池中的对象超过此数值时将不再回收对象。
在这里插入图片描述

销毁对象池

销毁所有对象池以及其中包含的对象:

        Main.m_ReferencePool.Clear();

猜你喜欢

转载自blog.csdn.net/qq992817263/article/details/87191712