/// <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));
    }
Example #3
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="_prefab">存放的对象</param>
 /// <param name="_poolType">类型</param>
 public BufferPool(GameObject _prefab, BufferPoolType _poolType)
 {
     prefab   = _prefab;
     poolType = _poolType;
 }