Esempio n. 1
0
    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);
    }
Esempio n. 2
0
        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);
        }