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); }
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); }
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); }