public static TurretManager instance;
private Dictionary<string, List<GameObject>> pool;
void Awake()
{
instance = this;
}
void Start()
{
//string为预设体的name,list存入预设体生成的gameobject
pool = new Dictionary<string, List<GameObject>>();
}
//取对象 定义取对象,需要什么参数,对象声明的位置和角度
public GameObject GetObjectFromPool(string objName, Vector3 pos, Quaternion qua)
{
//声明一个gameobject
GameObject go;
//判断是否包含对应的list,并且list有值,不为空
if (pool.ContainsKey(objName) && pool[objName].Count > 0)
{
//取出对应的第0个元素,赋值给go
go = pool[objName][0];
//移除list中赋值给go的第0个元素
pool[objName].RemoveAt(0);
//激活该对象
go.SetActive(true);
}
//不是上面的情况都无法从池子中取出gameobject 只能克隆
else
{
//将克隆的对象作为预设体放在resources文件夹中
//resources.load加载出来的对象为object类型,需要里氏转换成gameobject类型
go = Instantiate(Resources.Load(objName) as GameOb