/// <summary> /// 放入缓存池 /// </summary> /// <param name="obj">对象</param> /// <param name="poolType">需要的池子类型</param> public void UnSpawn(GameObject obj, BufferPoolType poolType) { foreach (BufferPool pool in pools.Values) { if (pool.PoolType == poolType) { pool.UnSpawn(obj); return; } } }
/// <summary> /// 从池子取东西 /// </summary> /// <param name="obj">实例化的物体</param> /// <param name="position">位置</param> /// <param name="quaternion">旋转</param> /// <param name="poolType">类型</param> public GameObject Spawn(GameObject obj, Vector3 position, Quaternion quaternion, BufferPoolType poolType) { BufferPool pool = null; //没有对应的池子,先生成池子 if (!pools.ContainsKey(obj.name)) { pool = new BufferPool(obj, poolType); pools.Add(pool.PoolName, pool); } pool = pools[obj.name]; return(pool.Spawn(position, quaternion)); }
/// <summary> /// 构造方法 /// </summary> /// <param name="_prefab">存放的对象</param> /// <param name="_poolType">类型</param> public BufferPool(GameObject _prefab, BufferPoolType _poolType) { prefab = _prefab; poolType = _poolType; }