之前项目在使用对象的时候 就考虑到 如果频繁的创建对象或者销毁对象的话 对性能会有影响 所以就自己写了个对象池 代码比较简单 项目亲测实用 喜欢的朋友拿走吧
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
//一个模板类,定义缓存的基本类
public class GCKiller<T> where T: new()
{
protected int maxCacheObjectNum = 20;
protected T[] cacheObjectList;
protected int listHead = 0;
protected int listTail = 0;
public GCKiller(int maxCacheObjectNum)
{
this.maxCacheObjectNum = maxCacheObjectNum;
cacheObjectList = new T[this.maxCacheObjectNum];
for(int index = 0; index < this.maxCacheObjectNum; ++index)
{
cacheObjectList[index] = default(T);
}
}
public virtual T GetUnusedOne()
{
{
listHead = listHead % maxCacheObjectNum;
listTail = listTail % maxCacheObjectNum;
while(listHead != listTail)
{
T current = cacheObjectList[listHead];
int tempHeaderIndex = listHead;
listHea