Example #1
0
        private void PoolsFromEditorInitialization()
        {
            for (int i = 0; i < preGenParamsForPools.Count; i++)
            {
                PoolParams poolParams = preGenParamsForPools[i];

                if (poolParams.poolHolder == null)
                {
                    GameObject poolHolderObject = new GameObject(poolParams.prefab.name + " Objects Pool");
                    poolHolderObject.transform.parent = transform;
                    poolParams.poolHolder             = poolHolderObject.transform;
                }

                CreatePool(poolParams.prefab, poolParams.poolSize, poolParams.canExpand, poolParams.poolHolder);
            }
        }
Example #2
0
        public ObjectPool(PoolParams poolParams)
        {
            this.prefab     = poolParams.prefab;
            this.poolSize   = Mathf.Max(2, poolParams.poolSize);
            this.canExpand  = poolParams.canExpand;
            this.poolHolder = poolParams.poolHolder;
            if (poolSize == 0)
            {
                pool = new Queue <PooledObject>();
            }
            else
            {
                pool = new Queue <PooledObject>(this.poolSize);
            }

            #if UNITY_EDITOR
            listShowPool = new List <PooledObject>(pool);
            #endif
        }
Example #3
0
        public void CreatePool(PoolParams poolParams)
        {
            KeyValuePair <int, string> poolKey = DictionaryKey(poolParams.prefab);

            if (!poolDictionary.ContainsKey(poolKey))
            {
                dictionaryKeys.Add(poolKey);

                if (poolParams.poolHolder == null)
                {
                    GameObject poolHolderObject = new GameObject(poolParams.prefab.name + " Objects Pool");
                    poolHolderObject.transform.parent = transform;
                    poolParams.poolHolder             = poolHolderObject.transform;
                }

                poolDictionary.Add(poolKey, new ObjectPool(poolParams));

                for (int i = 0; i < poolParams.poolSize; i++)
                {
                    AddObject(poolKey, poolParams.prefab);
                }
            }
        }