public void ReuseFromPool(GameObject gameObj, Vector3 position, Quaternion rotation) { int poolKey = gameObj.GetInstanceID(); if (_poolDictionary.ContainsKey(poolKey)) { PoolObject objectGet = _poolDictionary [poolKey].Dequeue(); objectGet.Activate(position, rotation); _poolDictionary [poolKey].Enqueue(objectGet); } }
public PoolObject ActivateObject(int id) { if (id > PoolItems.Count || id < 0) { Debug.Log("Requesting illegal object with id " + id); return(null); } for (int count = 0; count < _pool[id].Count; ++count) { PoolObject obj = _pool[id][count]; if (obj == null) { Debug.Log("Object does not have a PoolObject script"); return(null); } if (!obj.IsActive) { obj.Reset(); obj.Activate(); return(obj); } } return(AddExtraObjectToPool(id)); }