需要查看有关该对象池的解析的,请跳转:
Unity 轻量级对象池管理器(上)
上图右下角的ObjectPool文件夹中,主要实现了两个脚本,第一个是对象池管理器(ObjectPoolManager),第二个是对象队列管理(ObjectPoolModel)
使用时只需要将ObjectPoolManager挂载在游戏场景中的某个对象中,并在场景中添加一个GameObjectPool空对象即可
ObjectPoolModel代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ObjectPool
{
public class ObjectPoolModel<T>
{
//未使用的对象
//在场景中删除的对象暂存在这
private Queue<ObjectPoolItem<T>> unUsedList;
public ObjectPoolModel()
{
unUsedList = new Queue<ObjectPoolItem<T>>();
}
/// <summary>
/// 尝试获取未被使用的对象
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
public ObjectPoolItem<T> TryGetUnUsedObject(ObjectType type)
{
if(unUsedList.Count != 0)
{
return unUsedList.Dequeue();
}else
{
return null;