예제 #1
0
    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);
        }
    }