private void EndRegeneration() { for (var i = groups.Count - 1; i >= 0; i--) { var group = groups[i]; if (group.Asteroids.Count > 0) { group.Asteroids.Clear(); // No longer needed, and they've already been pooled in RegenerateMeshes() for (var j = group.Models.Count - 1; j >= 0; j--) { var model = group.Models[j]; if (model.Mesh == null) { SgtBeltModel.Pool(model); group.Models.RemoveAt(j); } } } else { SgtBeltGroup.Pool(group); groups.RemoveAt(i); } } }
public static void Pool(SgtBeltGroup group) { if (group != null) { group.Belt = null; group.MainTex = null; group.HeightTex = null; group.Material = null; for (var i = group.Models.Count - 1; i >= 0; i--) { SgtBeltModel.Pool(group.Models[i]); } group.Models.Clear(); SgtComponentPool <SgtBeltGroup> .Add(group); } }