private static string TypeToPath(PoolingObjects type) { return(type switch { PoolingObjects.Bullet => @"Prefabs/Bullet", _ => @"" });
private GameObject preloadObject(PoolingObjects preloadObject, bool pool) { GameObject newObj; PooledObject gameObjScript; if (preloadObject.customName == "") { preloadObject.customName = preloadObject.objectPrefab.name; } // Instantiate object and reset it transformation. Assign it as child to Pool newObj = Instantiate(preloadObject.objectPrefab) as GameObject; newObj.name = preloadObject.customName; // Add PooledObject script, if needed if (preloadObject.addAutoPoolScript) { newObj.AddComponent <PooledObject>(); gameObjScript = newObj.GetComponent <PooledObject>(); gameObjScript.parentPool = this; } // Add the new object to pool if (pool) { PoolObject(newObj, false); } return(newObj); }
public Transform Dequeue(PoolingObjects type) { Transform obj; if (objectQueues[type].Count > 0) { obj = objectQueues[type].Dequeue(); obj.gameObject.SetActive(true); } else { obj = Instantiate(Resources.Load <Transform>(TypeToPath(type))); } return(obj); }
public void Enqueue(PoolingObjects type, Transform obj) { objectQueues[type].Enqueue(obj); }