Exemple #1
0
        public static PoolObject Spawn(PoolObjectIdentificator _name, Vector3 pos, Quaternion rot)
        {
            if (!instance.nameToIndex.ContainsKey(_name))
            {
                Debug.LogError("<color=red>There is no pool named " + _name + " in Dictionary</color>");
                return(null);
            }
            if (instance.pools[instance.nameToIndex[_name]].ObjectsToUse <= 0)
            {
                //Debug.LogError("<color=red>There is no more elements in pool named " + _name + "</color>");
                //return null;
                Debug.Log("Added");
                for (int j = 0; j < instance.pools[instance.nameToIndex[_name]].growBy; j++)
                {
                    instance.pools[instance.nameToIndex[_name]].AddObject(Instantiate(instance.pools[instance.nameToIndex[_name]].prefab, instance.transform));
                }
            }
            PoolObject _obj = instance.pools[instance.nameToIndex[_name]].GetObject();

            _obj.transform.SetPositionAndRotation(pos, rot);

            _obj.Activate(instance);

            return(_obj);
        }
Exemple #2
0
 internal void RegisterDestroyed(PoolObjectIdentificator _name, PoolObject poolObject)
 {
     if (!nameToIndex.ContainsKey(_name))
     {
         Debug.LogError("<color=red>There is no pool named " + _name + " in Dictionary</color>");
         return;
     }
     pools[nameToIndex[_name]].AddObject(poolObject);
 }
Exemple #3
0
        public PoolObject Spawn(PoolObjectIdentificator _name, Vector3 pos, Quaternion rot)
        {
            if (!nameToIndex.ContainsKey(_name))
            {
                Debug.LogError("<color=red>There is no pool named " + _name + " in Dictionary</color>");
                return(null);
            }
            // Adding objects if queue is empty
            if (pools[nameToIndex[_name]].ObjectsToUse <= 0)
            {
                for (int j = 0; j < pools[nameToIndex[_name]].growBy; j++)
                {
                    pools[nameToIndex[_name]].AddObject(Instantiate(pools[nameToIndex[_name]].prefab, transform));
                }
            }

            PoolObject _obj = pools[nameToIndex[_name]].GetObject();

            _obj.transform.SetPositionAndRotation(pos, rot);

            _obj.Activate(this);

            return(_obj);
        }