private static ObjectPool GetObjectPool(RecycledGameObject reference) { ObjectPool pool = null; if (GameObjectsPool.ContainsKey(reference)) { pool = GameObjectsPool[reference]; } else { var poolContainer = new GameObject(reference.gameObject.name + "ObjectPool"); pool = poolContainer.AddComponent <ObjectPool>(); pool.prefab = reference; GameObjectsPool.Add(reference, pool); } return(pool); }
public RecycledGameObject NextGameObject(Transform parentTransform) { RecycledGameObject instance = null; foreach (var gO in poolGameObjects) { if (gO.gameObject.activeSelf != true) { instance = gO; instance.transform.SetParent(parentTransform); } } if (instance == null) { instance = CreateGameObject(parentTransform); } instance.Restart(); return(instance); }
public RecycledGameObject NextGameObject(Vector3 position) { RecycledGameObject instance = null; foreach (var gO in poolGameObjects) { if (gO.gameObject.activeSelf != true) { instance = gO; instance.transform.position = position; } } if (instance == null) { instance = CreateGameObject(position); } instance.Restart(); return(instance); }