/// <summary> /// returns an object to pool /// </summary> /// <param name="obj">object to return</param> /// <returns>true if obj belongs to the pool, false otherwise</returns> public bool returnObjectToPool(GameObject obj, POOLTYPE type = POOLTYPE.DEFAULT) { ObjectPoolItem objectPoolItem; if (type == POOLTYPE.DEFAULT) { if (dicItemsToPool.TryGetValue(obj.name, out objectPoolItem)) { return(objectPoolItem.returnObjectToPool(obj)); } } else if (type == POOLTYPE.UI) { if (dicUIToPool.TryGetValue(obj.name, out objectPoolItem)) { return(objectPoolItem.returnObjectToPool(obj)); } } else if (type == POOLTYPE.PARTICLE) { if (dicParticleToPool.TryGetValue(obj.name, out objectPoolItem)) { return(objectPoolItem.returnObjectToPool(obj)); } } return(false); }
/// <summary> /// gets a pooled object with specified name /// </summary> /// <returns>pooled object</returns> /// <param name="name">name</param> public GameObject getPoolObject(string name, POOLTYPE type = POOLTYPE.DEFAULT) { switch (type) { case POOLTYPE.DEFAULT: return(dicItemsToPool[name].getPoolObject()); case POOLTYPE.UI: return(dicUIToPool[name].getPoolObject()); case POOLTYPE.PARTICLE: return(dicParticleToPool[name].getPoolObject()); default: break; } return(null); }