public void ReturnTrailRenderer(TrailRenderer renderer) { if (renderer != null && _ActiveTrails != null && _ActiveTrails.ContainsKey(renderer)) { eTRAIL_LENGTH length = _ActiveTrails[renderer]; if (_TrailPool[length].Count < _Capacity[(int)length]) { _TrailPool[length].Add(renderer); //_ActiveTrails.Remove(renderer); //EB.Debug.Log("Trail "+ length.ToString() +" Returned to Pool"); } else { renderer.DestroyTrail(); //EB.Debug.Log("Trail "+ length.ToString() +" Returned. Pool Maxed, Destroy"); } _ActiveTrails.Remove(renderer); } }
public TrailRenderer GetTrailRenderer(eTRAIL_LENGTH length) { TrailRenderer trail = null; int vertSize = _VertSizeMap[(int)length]; if (_TrailPool != null && _TrailPool[length].Count > 0) { trail = _TrailPool[length][0]; _TrailPool[length].RemoveAt(0); //EB.Debug.Log("Trail "+ length.ToString() +" Requested - Give from pool Capacity: " + _TrailPool[length].Count); } else { trail = new TrailRenderer(vertSize, parent); //EB.Debug.Log("Trail "+ length.ToString() +" Requested - New One Created"); } _ActiveTrails.Add(trail, length); //trail.SetupTrail(); return(trail); }