public override void OnInspectorGUI() {
        serializedObject.Update();
        
        script = target as FilledRenderer3D;
        
        if (MadGUI.Foldout("Textures", true)) {
            MadGUI.BeginBox();
            FieldBackgroundTextures();
            
            EditorGUILayout.PropertyField(textureBar, new GUIContent("Bar Texture"));         
            CheckTextureIsReadable(script.textureBar);
            CheckTextureFilterTypeNotPoint(script.textureBar);
            
            FieldForegroundTextures();
            
            FieldPremultipliedAlpha();
            MadGUI.EndBox();
        }
        
        if (showPositionAndSize && MadGUI.Foldout("Position & Size", true)) {
            MadGUI.BeginBox();
            
            if (MadGUI.Button("Make Pixel-Perfect")) {
                script.transform.localPosition = MadMath.Round(script.transform.localPosition);
                script.transform.localScale = new Vector3(1, 1, 1);
                EditorUtility.SetDirty(script);
            }
            
            if (!IsAnchored()) {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Anchor");
                if (GUILayout.Button("Create")) {
                    CreateAnchor();
                }
                EditorGUILayout.EndHorizontal();
            } else {
                var anchor = GetAnchor();
                var serAnchor = new SerializedObject(anchor);
                MadAnchorInspector.DrawInspector(serAnchor);
            }

            EditorGUI.BeginChangeCheck();
            script.pivot = (EnergyBar3DBase.Pivot) EditorGUILayout.EnumPopup("Pivot Point", script.pivot);
            if (EditorGUI.EndChangeCheck()) {
                EditorUtility.SetDirty(script);
            }
            MadGUI.PropertyField(guiDepth, "GUI Depth");
            MadGUI.EndBox();
        }
        
        if (MadGUI.Foldout("Appearance", false)) {
            MadGUI.BeginBox();
            
            var dir = (EnergyBarRenderer.GrowDirection) growDirection.enumValueIndex;
        
            if (dir == EnergyBarRenderer.GrowDirection.ColorChange) {
                GUI.enabled = false;
            }
            EditorGUILayout.PropertyField(textureBarColorType, new GUIContent("Bar Color Type"));
            EditorGUI.indentLevel++;
                switch ((EnergyBarRenderer.ColorType)textureBarColorType.enumValueIndex) {
                    case EnergyBarRenderer.ColorType.Solid:
                        EditorGUILayout.PropertyField(textureBarColor, new GUIContent("Bar Color"));
                        break;
                        
                    case EnergyBarRenderer.ColorType.Gradient:
                        EditorGUILayout.PropertyField(textureBarGradient, new GUIContent("Bar Gradient"));
                        break;
                }
                
            EditorGUI.indentLevel--;
            
            GUI.enabled = true;
            
            EditorGUILayout.PropertyField(growDirection, new GUIContent("Grow Direction"));
            
            if (dir == EnergyBarRenderer.GrowDirection.RadialCW || dir == EnergyBarRenderer.GrowDirection.RadialCCW) {
                MadGUI.Indent(() => {
                    EditorGUILayout.Slider(radialOffset, -1, 1, "Offset");
                    EditorGUILayout.Slider(radialLength, 0, 1, "Length");
                });
            } else if (dir == EnergyBarRenderer.GrowDirection.ColorChange) {
                EditorGUILayout.PropertyField(textureBarGradient, new GUIContent("Bar Gradient"));
            }
            
            FieldLabel();
            
            MadGUI.EndBox();
        }
        
        if (MadGUI.Foldout("Effects", false)) {
            MadGUI.BeginBox();
            
            FieldSmoothEffect();
            
            MadGUI.PropertyFieldToggleGroup2(effectBurn, "Burn Out", () => {
                MadGUI.Indent(() => {
                    MadGUI.PropertyField(effectBurnTextureBar, "Burn Texture Bar");
                    MadGUI.PropertyField(effectBurnTextureBarColor, "Burn Color");
                });
            });
            
            MadGUI.PropertyFieldToggleGroup2(effectBlink, "Blink", () => {
                MadGUI.Indent(() => {
                    MadGUI.PropertyField(effectBlinkValue, "Value");
                    MadGUI.PropertyField(effectBlinkRatePerSecond, "Rate (per second)");
                    MadGUI.PropertyField(effectBlinkColor, "Color");
                });
            });
            
            MadGUI.PropertyFieldToggleGroup2(effectFollow, "Sprite Follow", () => {
                MadGUI.Indent(() => {
                    if (GUI.enabled && !GrowDirectionSupportedByFollowEffect()) {
                        MadGUI.Error("This effect cannot be used with selected grow direction. "
                            + "Please read manual for more information.");
                    }
                
                    MadGUI.PropertyField(effectFollowObject, "Texture or GameObject",
                        "This can be Texture, MadSprite or any other GameObject.");
                        
                    if (!VerifyFollowObject()) {
                        MadGUI.Error("You can put here only Texture2D or GameObject.");
                    }
                        
                    MadGUI.PropertyField(effectFollowColor, "Color");
                    MadGUI.PropertyField(effectFollowRotation, "Rotation");
                    if (MadGUI.Foldout("Scale", false)) {
                        MadGUI.Indent(() => {
                            MadGUI.PropertyField(effectFollowScaleX, "X");
                            MadGUI.PropertyField(effectFollowScaleY, "Y");
                            MadGUI.PropertyField(effectFollowScaleZ, "Z");
                        });
                    }
                    
                    
                });
            });
            
            MadGUI.EndBox();
        }
        
        EditorGUILayout.Space();
        
        serializedObject.ApplyModifiedProperties();
    }
        public override void OnInspectorGUI()
        {
            ClearActionQueue();
            serializedObject.Update();

            var t = target as EnergyBarTransformRenderer;

            if (MadGUI.Foldout("Textures", true))
            {
                MadGUI.BeginBox();
                FieldBackgroundTextures();

                MadGUI.Indent(() => {
                    EditorGUILayout.LabelField("Object Texture");
                    GUITexture(textureObjectTexture, textureObjectColor);

                    MadGUI.PropertyFieldVector2(transformAnchor, "Texture Anchor");
                });

                EditorGUILayout.Space();

                CheckTextureIsReadable(t.textureObject.texture);
                CheckTextureFilterTypeNotPoint(t.textureObject.texture);

                FieldForegroundTextures();

                FieldPremultipliedAlpha();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Position & Size", true))
            {
                MadGUI.BeginBox();

                MadGUI.PropertyFieldVector2(screenPosition, "Position");

                EditorGUI.indentLevel++;
                PropertySpecialNormalized(screenPosition, screenPositionNormalized);
                MadGUI.PropertyField(pivot, "Pivot");
                MadGUI.PropertyField(anchorObject, "Anchor");
                MadGUI.PropertyField(anchorCamera, "Anchor Camera", "Camera on which world coordinates will be translated to "
                                     + "screen coordinates.");
                EditorGUI.indentLevel--;

                MadGUI.PropertyField(guiDepth, "GUI Depth");

                PropertySpecialResizeMode(size, resizeMode);

                FieldRelativeToTransform();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Object Transform", true))
            {
                MadGUI.BeginBox();
                MadGUI.PropertyFieldToggleGroup2(transformTranslate, "Translate", () => {
                    MadGUI.Indent(() => {
                        MadGUI.PropertyFieldVector2(translateFunctionStart, "Start Point");
                        MadGUI.PropertyFieldVector2(translateFunctionEnd, "End Point");
                    });
                });

                MadGUI.PropertyFieldToggleGroup2(transformRotate, "Rotate", () => {
                    MadGUI.Indent(() => {
                        MadGUI.PropertyField(rotateFunctionStart, "Start Angle");
                        MadGUI.PropertyField(rotateFunctionEnd, "End Angle");
                    });
                });

                MadGUI.PropertyFieldToggleGroup2(transformScale, "Scale", () => {
                    MadGUI.Indent(() => {
                        MadGUI.PropertyFieldVector2(scaleFunctionStart, "Start Scale");
                        MadGUI.PropertyFieldVector2(scaleFunctionEnd, "End Scale");
                    });
                });

                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Appearance", false))
            {
                MadGUI.BeginBox();
                FieldLabel();
                MadGUI.EndBox();
            }

            serializedObject.ApplyModifiedProperties();
            ExecuteActionQueue();
        }
Ejemplo n.º 3
0
        public override void OnInspectorGUI()
        {
            ClearActionQueue();
            serializedObject.Update();

            var t = target as EnergyBarSequenceRenderer;

            if (MadGUI.Foldout("Textures", true))
            {
                MadGUI.BeginBox();

                EditorGUILayout.PropertyField(method, new GUIContent("Render Method"));

                switch ((EnergyBarSequenceRenderer.Method)method.enumValueIndex)
                {
                case EnergyBarSequenceRenderer.Method.Grid:
                    OnGUIGrid();

                    break;

                case EnergyBarSequenceRenderer.Method.Sequence:
                    PropertyFieldWithChildren("sequence");
                    break;
                }

                MadGUI.PropertyField(color, "Color Tint");

                FieldBackgroundTextures();
                FieldForegroundTextures();
                FieldPremultipliedAlpha();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Position & Size", true))
            {
                MadGUI.BeginBox();
                MadGUI.PropertyFieldVector2(position, "Position");
                EditorGUI.indentLevel++;
                PropertySpecialNormalized(position, positionNormalized);
                MadGUI.PropertyField(pivot, "Pivot");
                MadGUI.PropertyField(anchorObject, "Anchor");
                EditorGUI.indentLevel--;

                MadGUI.PropertyField(guiDepth, "GUI Depth");

                PropertySpecialResizeMode(size, resizeMode);

                FieldRelativeToTransform();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Appearance", false))
            {
                MadGUI.BeginBox();
                FieldLabel();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Effects", false))
            {
                MadGUI.BeginBox();
                FieldSmoothEffect();
                MadGUI.EndBox();
            }

            serializedObject.ApplyModifiedProperties();

            ExecuteActionQueue();

            EditorGUILayout.PrefixLabel("Preview:");
            MadGUI.BeginBox(); {
                var rect = EditorGUILayout.BeginVertical();
                GUILayout.Space(100);

                if (t.IsValid())
                {
                    Rect texCoords;
                    var  texture = t.GetTexture(out texCoords);
                    if (texture != null)
                    {
                        GUI.DrawTextureWithTexCoords(PreserveAspect(rect), texture, texCoords);
                    }
                }
                EditorGUILayout.EndVertical();
            } MadGUI.EndBox();
        }
        public override void OnInspectorGUI()
        {
            ClearActionQueue();
            serializedObject.Update();

            var t = target as EnergyBarRenderer;

            if (MadGUI.Foldout("Textures", true))
            {
                MadGUI.BeginBox();
                FieldBackgroundTextures();

                EditorGUILayout.PropertyField(textureBar, new GUIContent("Bar Texture"));
                CheckTextureIsReadable(t.textureBar);
                CheckTextureFilterTypeNotPoint(t.textureBar);

                FieldForegroundTextures();

                FieldPremultipliedAlpha();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Position & Size", true))
            {
                MadGUI.BeginBox();

                MadGUI.PropertyFieldVector2(screenPosition, "Position");

                EditorGUI.indentLevel++;
                PropertySpecialNormalized(screenPosition, screenPositionNormalized);
                MadGUI.PropertyField(pivot, "Pivot");
                MadGUI.PropertyField(anchorObject, "Anchor");
                MadGUI.PropertyField(anchorCamera, "Anchor Camera", "Camera on which world coordinates will be translated to "
                                     + "screen coordinates.");
                EditorGUI.indentLevel--;

                MadGUI.PropertyField(guiDepth, "GUI Depth");

                PropertySpecialResizeMode(size, resizeMode);

                FieldRelativeToTransform();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Appearance", false))
            {
                MadGUI.BeginBox();

                var dir = (EnergyBarRenderer.GrowDirection)growDirection.enumValueIndex;

                if (dir == EnergyBarRenderer.GrowDirection.ColorChange)
                {
                    GUI.enabled = false;
                }
                EditorGUILayout.PropertyField(textureBarColorType, new GUIContent("Bar Color Type"));
                EditorGUI.indentLevel++;
                switch ((EnergyBarRenderer.ColorType)textureBarColorType.enumValueIndex)
                {
                case EnergyBarRenderer.ColorType.Solid:
                    EditorGUILayout.PropertyField(textureBarColor, new GUIContent("Bar Color"));
                    break;

                case EnergyBarRenderer.ColorType.Gradient:
                    EditorGUILayout.PropertyField(textureBarGradient, new GUIContent("Bar Gradient"));
                    break;
                }

                EditorGUI.indentLevel--;

                GUI.enabled = true;

                EditorGUILayout.PropertyField(growDirection, new GUIContent("Grow Direction"));

                if (dir == EnergyBarRenderer.GrowDirection.RadialCW || dir == EnergyBarRenderer.GrowDirection.RadialCCW)
                {
                    MadGUI.Indent(() => {
                        EditorGUILayout.Slider(radialOffset, -1, 1, "Offset");
                        EditorGUILayout.Slider(radialLength, 0, 1, "Length");
                    });
                }
                else if (dir == EnergyBarRenderer.GrowDirection.ColorChange)
                {
                    EditorGUILayout.PropertyField(textureBarGradient, new GUIContent("Bar Gradient"));
                }

                FieldLabel();

                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Effects", false))
            {
                MadGUI.BeginBox();

                FieldSmoothEffect();

                MadGUI.PropertyFieldToggleGroup2(effectBurn, "Burn Out Effect", () => {
                    MadGUI.Indent(() => {
                        MadGUI.PropertyField(effectBurnTextureBar, "Burn Texture Bar");
                        MadGUI.PropertyField(effectBurnTextureBarColor, "Burn Color");
                    });
                });

                MadGUI.PropertyFieldToggleGroup2(effectBlink, "Blink Effect", () => {
                    MadGUI.Indent(() => {
                        MadGUI.PropertyField(effectBlinkValue, "Value");
                        MadGUI.PropertyField(effectBlinkRatePerSecond, "Rate (per second)");
                        MadGUI.PropertyField(effectBlinkColor, "Color");
                    });
                });

#if MAD_DEBUG
                MadGUI.PropertyFieldToggleGroup2(effectEdge, "Edge Effect", () => {
                    MadGUI.Indent(() => {
                        MadGUI.PropertyField(effectEdgeTexture, "Edge Texture");
                        MadGUI.PropertyField(effectEdgeIn, "Fade In Buffer");
                        MadGUI.PropertyField(effectEdgeOut, "Fade Out Buffer");
                        MadGUI.PropertyField(effectEdgeRotateAngle, "Rotation");
                    });
                });
#endif

                MadGUI.EndBox();
            }

            EditorGUILayout.Space();

            serializedObject.ApplyModifiedProperties();
            ExecuteActionQueue();
        }
        override public void OnInspectorGUI()
        {
            serializedObject.Update();

            valueCurrent.intValue = (int)EditorGUILayout.Slider("Current Value", valueCurrent.intValue, valueMin.intValue, valueMax.intValue);
            MadGUI.PropertyField(valueMin, "Min Value");
            MadGUI.PropertyField(valueMax, "Max Value");

            int fillDirectionPrev = fillDirection.enumValueIndex;

            MadGUI.PropertyField(fillDirection, "Fill Direction");
            if (fillDirectionPrev != fillDirection.enumValueIndex)
            {
                SetFillDirection((UISprite.FillDirection)fillDirection.enumValueIndex, fillDirectionInvert.boolValue);
            }

            bool invertFillPrev = fillDirectionInvert.boolValue;

            MadGUI.PropertyField(fillDirectionInvert, "Invert Fill");
            if (invertFillPrev != fillDirectionInvert.boolValue)
            {
                SetFillDirection((UISprite.FillDirection)fillDirection.enumValueIndex, fillDirectionInvert.boolValue);
            }

            MadGUI.PropertyField(colorType, "Bar Color Type");

            switch ((UIFillProgressBar.ColorType)colorType.enumValueIndex)
            {
            case UIFillProgressBar.ColorType.Solid:
                t.bar.color = EditorGUILayout.ColorField("Bar Color", t.bar.color);
                EditorUtility.SetDirty(t.bar);
                break;

            case UIFillProgressBar.ColorType.Gradient:
                MadGUI.PropertyField(colorGradient, "Bar Color Gradient");
                break;

            default:
                Debug.LogError("unknown option: " + colorType.enumValueIndex);
                break;
            }

            if (MadGUI.Foldout("Position", true))
            {
                MadGUI.BeginBox(); {
                    MadGUI.PropertyField(anchorObject, "Anchor", "Object to attach to");
                    MadGUI.PropertyField(anchorCamera, "Anchor Camera", "Camera on which anchored object is visible");
                    MadGUI.PropertyField(anchor3d, "Anchor 3D",
                                         "If enabled bar will be positioned in real 3D position. Useful when Using 3D interface in NGUI.");
                    MadGUI.PropertyFieldVector2(anchorOffset, "Anchor Offset");
                } MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Effects", true))
            {
                MadGUI.BeginBox(); {
                    FieldSmoothEffect();

                    bool burnEnabledPrev = effectBurn.boolValue;
                    MadGUI.PropertyFieldToggleGroup2(effectBurn, "Burn Out Effect", () => {
                        MadGUI.Indent(() => {
                            if (burnEnabledPrev != effectBurn.boolValue)
                            {
                                SetBurnEffect(effectBurn.boolValue);
                            }

                            if (effectBurn.boolValue)
                            {
                                ((UISprite)effectBurnBar.objectReferenceValue).color =
                                    EditorGUILayout.ColorField("Burn Color", ((UISprite)effectBurnBar.objectReferenceValue).color);
                            }
                        });
                    });

                    MadGUI.PropertyFieldToggleGroup2(effectBlink, "Blink Effect", () => {
                        MadGUI.Indent(() => {
                            MadGUI.PropertyField(effectBlinkValue, "Value");
                            MadGUI.PropertyField(effectBlinkRatePerSecond, "Rate (per second)");
                            MadGUI.PropertyField(effectBlinkColor, "Color");
                        });
                    });
                } MadGUI.EndBox();
            }

            serializedObject.ApplyModifiedProperties();
        }
        public override void OnInspectorGUI()
        {
            ClearActionQueue();
            serializedObject.Update();

            if (MadGUI.Foldout("Textures", true))
            {
                MadGUI.BeginBox();
                MadGUI.PropertyField(repeatCount, "Repeat Count");
                MadGUI.PropertyField(icon, "Icon");
                CheckTextureIsGUI(icon.objectReferenceValue as Texture2D);
                CheckTextureFilterTypeNotPoint(icon.objectReferenceValue as Texture2D);
                MadGUI.Indent(() => { MadGUI.PropertyField(iconColor, "Icon Tint"); });

                MadGUI.PropertyField(iconSlot, "Slot Icon");
                CheckTextureIsGUI(iconSlot.objectReferenceValue as Texture2D);
                CheckTextureFilterTypeNotPoint(iconSlot.objectReferenceValue as Texture2D);
                MadGUI.Indent(() => { MadGUI.PropertyField(iconSlotColor, "Slot Icon Tint"); });
                FieldPremultipliedAlpha();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Position & Size", true))
            {
                MadGUI.BeginBox();
                MadGUI.PropertyFieldVector2(startPosition, "Start Position");
                EditorGUI.indentLevel++;
                PropertySpecialNormalized(startPosition, startPositionNormalized);
                MadGUI.PropertyField(pivot, "Pivot");
                MadGUI.PropertyField(anchorObject, "Anchor");
                EditorGUI.indentLevel--;
                MadGUI.PropertyField(guiDepth, "GUI Depth");

                PropertySpecialResizeMode(iconSize, resizeMode, "Icon ");

//            switch ((EnergyBarOnGUIBase.ResizeMode) resizeMode.enumValueIndex) {
//                case EnergyBarOnGUIBase.ResizeMode.Constant:
//                    PropertyFieldToggleGroupInv2(iconSizeCalculate, "Manual Size", () => {
//                        Indent(() => {
//                            PropertyFieldVector2(iconSize, "Icon Size");
//                        });
//                    });
//                    break;
//
//                case EnergyBarOnGUIBase.ResizeMode.Stretch:
//                    PropertyFieldVector2(iconSize, "Icon Size");
//                    break;
//
//                case EnergyBarOnGUIBase.ResizeMode.KeepRatio:
//                    EditorGUI.BeginChangeCheck();
//
//                    float y = EditorGUILayout.FloatField("Icon Height", iconSize.vector2Value.y);
//                    if (EditorGUI.EndChangeCheck()) {
//                        var vec = new Vector2(iconSize.vector2Value.x, y);
//                        iconSize.vector2Value = vec;
//                    }
//                break;
//            }

                MadGUI.PropertyFieldVector2(positionDelta, "Icons Distance");

                FieldRelativeToTransform();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Appearance", false))
            {
                MadGUI.BeginBox();
                FieldLabel();
                MadGUI.EndBox();
            }

            if (MadGUI.Foldout("Effects", false))
            {
                MadGUI.BeginBox();
                MadGUI.PropertyField(effect, "Grow Effect");
                if (effect.enumValueIndex == (int)EnergyBarRepeatRenderer.Effect.Cut)
                {
                    MadGUI.PropertyField(cutDirection, "Cut Direction");
                }

                FieldSmoothEffect();
                MadGUI.EndBox();
            }

            serializedObject.ApplyModifiedProperties();
            ExecuteActionQueue();
        }
    public override void OnInspectorGUI() {
        serializedObject.Update();
        
        var t = target as RepeatedRenderer3D;
        
        if (MadGUI.Foldout("Textures", true)) {
            MadGUI.BeginBox();
            
            EditorGUILayout.BeginHorizontal();
            MadGUI.PropertyField(textureIcon, "Icon");
            EditorGUILayout.PropertyField(tintIcon, new GUIContent(""), new GUILayoutOption[] { GUILayout.Width(50) });
            EditorGUILayout.EndHorizontal();
            
            EditorGUILayout.BeginHorizontal();
            MadGUI.PropertyField(textureSlot, "Slot");
            EditorGUILayout.PropertyField(tintSlot, new GUIContent(""), new GUILayoutOption[] { GUILayout.Width(50) });
            EditorGUILayout.EndHorizontal();
            
            CheckTextureIsReadable(t.textureIcon);
            CheckTextureIsReadable(t.textureSlot);
            
            MadGUI.EndBox();
        }
        
        if (showPositionAndSize && MadGUI.Foldout("Position & Size", true)) {
            MadGUI.BeginBox();
            
            if (MadGUI.Button("Make Pixel-Perfect")) {
                t.transform.localPosition = MadMath.Round(t.transform.localPosition);
                t.transform.localScale = new Vector3(1, 1, 1);
                EditorUtility.SetDirty(t);
            }
            
            if (!IsAnchored()) {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Anchor");
                if (GUILayout.Button("Create")) {
                    CreateAnchor();
                }
                EditorGUILayout.EndHorizontal();
            } else {
                var anchor = GetAnchor();
                var serAnchor = new SerializedObject(anchor);
                MadAnchorInspector.DrawInspector(serAnchor);
            }

            EditorGUI.BeginChangeCheck();
            t.pivot = (EnergyBar3DBase.Pivot) EditorGUILayout.EnumPopup("Pivot Point", t.pivot);
            if (EditorGUI.EndChangeCheck()) {
                EditorUtility.SetDirty(t);
            }
            
            MadGUI.PropertyField(guiDepth, "GUI Depth");
            MadGUI.EndBox();
        }
        
        if (MadGUI.Foldout("Appearance", false)) {
            MadGUI.BeginBox();
            
            MadGUI.PropertyField(repeatCount, "Repeat Count");
            MadGUI.PropertyFieldVector2(repeatPositionDelta, "Icon Distance");
            
            MadGUI.PropertyField(growType, "Grow Type");
            MadGUI.ConditionallyEnabled(growType.enumValueIndex == (int) RepeatedRenderer3D.GrowType.Fill, () => {
                MadGUI.PropertyField(fillDirection, "Fill Direction");
            });
            
            FieldLabel();
            
            MadGUI.EndBox();
        }
        
        if (MadGUI.Foldout("Effects", false)) {
            MadGUI.BeginBox();
            
            FieldSmoothEffect();
            
            MadGUI.EndBox();
        }
        
        EditorGUILayout.Space();
        
        serializedObject.ApplyModifiedProperties();
    }