public override void OnInspector()
    {
        SGT_EditorGUI.Separator();

        SGT_EditorGUI.BeginGroup("Debris");
        {
            Target.DebrisCentre             = SGT_EditorGUI.ObjectField("Centre", null, Target.DebrisCentre, true);
            Target.DebrisCountMax           = SGT_EditorGUI.IntField("Count Max", null, Target.DebrisCountMax);
            Target.DebrisContainerRadius    = SGT_EditorGUI.FloatField("Container Radius", null, Target.DebrisContainerRadius);
            Target.DebrisContainerThickness = SGT_EditorGUI.FloatField("Container Thickness", null, Target.DebrisContainerThickness);
            Target.Debris2D = SGT_EditorGUI.BoolField("2D", null, Target.Debris2D);

            SGT_EditorGUI.Separator();

            if (SGT_EditorGUI.Button("Regenerate") == true)
            {
                Target.Regenerate();
            }
        }
        SGT_EditorGUI.EndGroup();

        SGT_EditorGUI.Separator();

        SGT_EditorGUI.BeginGroup("Variants");
        {
            for (var i = 0; i < Target.VariantCount; i++)
            {
                var variant = Target.GetDebrisVariant(i);

                if (variant != null)
                {
                    SGT_EditorGUI.BeginIndent(true, 1);
                    {
                        variant.GameObject       = SGT_EditorGUI.ObjectField("GameObject", null, variant.GameObject);
                        variant.SpawnProbability = SGT_EditorGUI.FloatField("Spawn Probability", null, variant.SpawnProbability, 0.0f, 1.0f);

                        if (SGT_EditorGUI.Button("Remove") == true)
                        {
                            Target.RemoveDebrisVariant(i);
                        }
                    }
                    SGT_EditorGUI.EndIndent();

                    SGT_EditorGUI.Separator();
                }
            }

            SGT_EditorGUI.BeginIndent(true, 1);
            {
                var addVariant = SGT_EditorGUI.ObjectField <GameObject>("Add Variant", null, null, Target.VariantCount == 0);

                if (addVariant != null)
                {
                    var variant = Target.AddDebrisVariant(addVariant);

                    variant.GameObject = addVariant;
                }
            }
            SGT_EditorGUI.EndIndent();
        }
        SGT_EditorGUI.EndGroup();

        SGT_EditorGUI.Separator();
    }