private void DeclareBaseObjectType(BaseObject.Type type, BaseObject prefab) { ObjectPool newPool = new ObjectPool(this, type, prefab); objectPoolDictionary.Add(type, newPool); GameObject activeObjs = new GameObject("Active " + type.ToString() + "s"); activeObjs.transform.parent = activeObjectParent; activeObjectParentDict.Add(type, activeObjs.transform); }
public ObjectPool(SceneObjectManager newManager, BaseObject.Type newType, BaseObject newReferenceObject) { manager = newManager; type = newType; referenceObject = newReferenceObject; transformParent = new GameObject(type.ToString() + "s").transform; transformParent.parent = manager.objectPoolParent.transform; stack = new Stack <BaseObject>(); for (int i = 0; i < referenceObject.pooledQuantity; i++) { BaseObject newBO = referenceObject.CreateCopy(); newBO.Initialize(manager); Push(newBO); } referenceObject.gameObject.SetActive(false); }