Exemple #1
0
        protected void FieldLabel()
        {
            bool classic = labelFont == null; // true if classic GUI version

            MadGUI.PropertyFieldToggleGroup2(labelEnabled, "Draw Label", () => {
                MadGUI.Indent(() => {
                    if (classic)
                    {
                        EditorGUILayout.PropertyField(labelSkin, new GUIContent("Label Skin"));
                    }
                    else
                    {
                        MadGUI.PropertyField(labelFont, "Label Font", MadGUI.ObjectIsSet);
                        MadGUI.PropertyField(labelScale, "Label Scale");
                    }

                    labelPosition.vector2Value = EditorGUILayout.Vector2Field("Label Position", labelPosition.vector2Value);
                    var t = target as EnergyBarBase;
                    if (MadGameObject.IsActive(t.gameObject))
                    {
                        var rect = t.DrawAreaRect;
                        PropertySpecialNormalized(labelPosition, labelPositionNormalized, new Vector2(rect.width, rect.height));
                    }

                    if (labelPivot != null)
                    {
                        MadGUI.PropertyField(labelPivot, "Pivot Point");
                    }

                    EditorGUILayout.PropertyField(labelFormat, new GUIContent("Label Format"));

                    if (MadGUI.Foldout("Label Format Help", false))
                    {
                        EditorGUILayout.HelpBox(FormatHelp, MessageType.None);
                    }

                    EditorGUILayout.PropertyField(labelColor, new GUIContent("Label Color"));

                    if (classic)
                    {
                        MadGUI.PropertyFieldToggleGroup2(labelOutlineEnabled, "Label Outline", () => {
                            MadGUI.Indent(() => {
                                EditorGUILayout.PropertyField(labelOutlineColor, new GUIContent("Outline Color"));
                            });
                        });
                    }
                });
            });
        }
Exemple #2
0
        protected void FieldLabel2()
        {
            MadGUI.PropertyField(label, "Label");

            using (MadGUI.EnabledIf((target as EnergyBarUGUIBase).label != null)) {
                using (MadGUI.Indent()) {
                    MadGUI.PropertyField(labelFormat, "Format");
                    formatHelpAnimBool.target = MadGUI.Foldout("Label Format Help", false);
                    if (EditorGUILayout.BeginFadeGroup(formatHelpAnimBool.faded))
                    {
                        EditorGUILayout.HelpBox(FormatHelp, MessageType.None);
                    }
                    EditorGUILayout.EndFadeGroup();
                }
            }
        }
Exemple #3
0
//    private void AtlasTextures(ref SerializedProperty textures, string label) {
//        if (MadGUI.Foldout(label, true)) {
//            var list = new MadGUI.ArrayList<EnergyBar3DBase.AtlasTex>(textures, (property) => {
//                var spriteName = property.FindPropertyRelative("spriteGUID");
//                var color = property.FindPropertyRelative("color");
//
//                AtlasTexture(spriteName, color);
//            });
//
//            list.Draw();
//        }
//    }

        private EnergyBar3DBase.AtlasTex[] AtlasTextures(EnergyBar3DBase.AtlasTex[] textures, string label)
        {
            if (MadGUI.Foldout(label, true))
            {
                var l = new List <EnergyBar3DBase.AtlasTex>();
                if (textures != null)
                {
                    l.AddRange(textures);
                }

                var list = new MadGUI.ArrayList <EnergyBar3DBase.AtlasTex>(l, (item) => {
                    var spriteGUID = item.spriteGUID;
                    var color      = item.color;

                    EditorGUI.BeginChangeCheck();
                    AtlasTexture(spriteGUID, ref color, (guid) => {
                        item.spriteGUID = guid;
                        EditorUtility.SetDirty(target);
                    });
                    if (EditorGUI.EndChangeCheck())
                    {
                        item.spriteGUID = spriteGUID;
                        item.color      = color;
                        EditorUtility.SetDirty(target);
                    }

                    return(item);
                });
                list.onAdd += (tex) => tex.color = Color.white;

                list.Draw();
                return(l.ToArray());
            }
            else
            {
                return(textures);
            }
        }
    private void SectionEffects() {
        GUILayout.Label("Effects", "HeaderLabel");
        using (MadGUI.Indent()) {
            FieldSmoothEffect();

            burnEffectAnimBool.target = effectBurn.boolValue;
            MadGUI.PropertyField(effectBurn, "Burn");
            if (EditorGUILayout.BeginFadeGroup(burnEffectAnimBool.faded)) {
                MadGUI.Indent(() => {
                    FieldSprite(effectBurnSprite, "Bar Texture");
                    MadGUI.PropertyField(effectBurnSprite.FindPropertyRelative("material"), "Material");

                    MadGUI.PropertyFieldEnumPopup(effectBurnDirection, "Direction");
                    if (effectBurnDirection.enumValueIndex != (int) EnergyBarBase.BurnDirection.OnlyWhenDecreasing &&
                        !effectSmoothChange.boolValue) {
                        if (
                            MadGUI.WarningFix(
                                "Burning when increasing will be visible only if the Smooth effect is enabled.",
                                "Enable Smooth Effect")) {
                            effectSmoothChange.boolValue = true;
                        }
                    }
                    MadGUI.PropertyField(effectSmoothChangeSpeed, "Speed");
                });
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFadeGroup();

            blinkEffectAnimBool.target = effectBlink.boolValue;
            MadGUI.PropertyField(effectBlink, "Blink");
            if (EditorGUILayout.BeginFadeGroup(blinkEffectAnimBool.faded)) {
                MadGUI.Indent(() => {
                    MadGUI.PropertyFieldEnumPopup(effectBlinkOperator, "Operator");
                    MadGUI.PropertyField(effectBlinkValue, "Value");
                    MadGUI.PropertyField(effectBlinkRatePerSecond, "Rate (per second)");
                    MadGUI.PropertyField(effectBlinkColor, "Color");
                });
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFadeGroup();

            tiledEffectAnimBool.target = effectTiled.boolValue;
            MadGUI.PropertyField(effectTiled, "Tiled");
            if (EditorGUILayout.BeginFadeGroup(tiledEffectAnimBool.faded)) {
                MadGUI.Indent(() => {
                    EditorGUILayout.BeginHorizontal();
                    MadGUI.PropertyField(effectTiledSprite, "Sprite", MadGUI.ObjectIsSet);
                    EditorGUILayout.PropertyField(effectTiledTint, new GUIContent(""), GUILayout.Width(90));
                    EditorGUILayout.EndHorizontal();

                    EnsureSpriteRepeated(effectTiledSprite);

                    MadGUI.PropertyFieldVector2(effectTiledTiling, "Tiling");
                    MadGUI.PropertyFieldVector2(effectTiledStartOffset, "Start Offset");
                    MadGUI.PropertyFieldVector2(effectTiledOffsetChangeSpeed, "Speed");
                });
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFadeGroup();

            followEffectAnimBool.target = effectFollow.boolValue;
            MadGUI.PropertyField(effectFollow, "Follow");
            if (EditorGUILayout.BeginFadeGroup(followEffectAnimBool.faded)) {
                using (MadGUI.Indent()) {
                    if (!GrowDirectionSupportedByFollowEffect()) {
                        MadGUI.Error("This effect cannot be used with selected grow direction. "
                                     + "Please read manual for more information.");
                    }

                    MadGUI.PropertyField(effectFollowObject, "GameObject");
                    MadGUI.PropertyField(effectFollowOffset, "Position Offset");

                    EditorGUILayout.Space();

                    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");
                        });
                    }
                }
            }
            EditorGUILayout.Space();
            EditorGUILayout.EndFadeGroup();
        }
    }
        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();
        }
Exemple #6
0
    public override void OnCustomInspector() {
        serializedObject.Update();

        Header();
        
        Section("Textures", () => {
            FieldTextureMode();

            EditorGUILayout.Space();

            if (script.textureMode != EnergyBar3DBase.TextureMode.TextureAtlas || script.atlas != null) {
                FieldBackgroundTextures();

                EditorGUILayout.Space();

                FieldSprite(textureBar, atlasTextureBarGUID, "Bar Texture");

                EditorGUILayout.Space();
                
                CheckTextureIsReadable(script.textureBar);
                CheckTextureFilterTypeNotPoint(script.textureBar);

                FieldForegroundTextures();

                FieldPremultipliedAlpha();
            }
        });

        if (showPositionAndSize) {
            SectionPositionAndSize();
        }

        Section("Appearance", () => {
            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;

            MadGUI.PropertyFieldEnumPopup(growDirection, "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();
        });

        Section("Effects", () => {
            FieldSmoothEffect();

            MadGUI.PropertyFieldToggleGroup2(effectBurn, "Burn Out", () => {
                MadGUI.Indent(() => {
                    FieldSprite(effectBurnTextureBar, atlasEffectBurnTextureBarGUID, "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");
                        });
                    }


                });
            });
        });
        
        EditorGUILayout.Space();
        
        serializedObject.ApplyModifiedProperties();
    }
    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();
    }
Exemple #8
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();
        }
Exemple #12
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            var t        = target as SimpleEvent;
            var collider = t.GetComponent <Collider>();

            if (collider != null)
            {
                if (!collider.isTrigger)
                {
                    if (MadGUI.ErrorFix("This game object collider must be marked as 'Trigger'. Change it?"))
                    {
                        collider.isTrigger = true;
                    }
                }
            }
            else
            {
                if (MadGUI.ErrorFix("This game object doesn't have a collider. Attach it now?"))
                {
                    collider           = t.gameObject.AddComponent <MeshCollider>();
                    collider.isTrigger = true;
                }
            }

            MadGUI.PropertyField(energyBar, "Energy Bar");
            MadGUI.PropertyField(targetType, "Trigger With");

            MadGUI.Indent(() => {
                switch ((SimpleEvent.Target)targetType.enumValueIndex)
                {
                case SimpleEvent.Target.GameObjects:
                    GUITargetGameObjects();
                    break;

                case SimpleEvent.Target.Tags:
                    GUITargetTags();
                    break;

                default:
                    Debug.LogError("Unknown option: " + targetType.enumValueIndex);
                    break;
                }
            });

            if (MadGUI.Foldout("On Trigger Enter", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerEnterAction, false);
                });
            }

            if (MadGUI.Foldout("On Trigger Stay", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerStayAction, true);
                });
            }

            if (MadGUI.Foldout("On Trigger Leave", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerLeaveAction, false);
                });
            }

            serializedObject.ApplyModifiedProperties();
        }
Exemple #13
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            var t        = target as SimpleEvent;
            var collider = t.GetComponent <Collider>();

#if !UNITY_4_1 && !UNITY_4_2
            var collider2d = t.GetComponent <Collider2D>();
#endif

            if (collider != null
#if !UNITY_4_1 && !UNITY_4_2
                || collider2d != null
#endif
                )
            {
                if (collider != null)
                {
                    if (!collider.isTrigger)
                    {
                        if (MadGUI.ErrorFix("This game object collider must be marked as 'Trigger'. Change it?"))
                        {
                            collider.isTrigger = true;
                        }
                    }
                }
#if !UNITY_4_1 && !UNITY_4_2
                else
                {
                    if (!collider2d.isTrigger)
                    {
                        if (MadGUI.ErrorFix("This game object collider must be marked as 'Trigger'. Change it?"))
                        {
                            collider2d.isTrigger = true;
                        }
                    }
                }
#endif
            }
            else
            {
                if (MadGUI.ErrorFix("This game object doesn't have a collider. Attach it now?"))
                {
#if !UNITY_4_1 && !UNITY_4_2
                    if (EditorUtility.DisplayDialog("Choose Collider Type", "Which collider type do you want to create? 2D or 3D?", "2D", "3D"))
                    {
                        var c = t.gameObject.AddComponent <BoxCollider2D>();
                        c.isTrigger = true;
                    }
                    else
                    {
#endif
                    var c = t.gameObject.AddComponent <BoxCollider>();
                    c.isTrigger = true;

#if !UNITY_4_1 && !UNITY_4_2
                }
#endif
                }
            }

            MadGUI.PropertyField(energyBar, "Energy Bar");
            MadGUI.PropertyField(targetType, "Trigger With");

            MadGUI.Indent(() => {
                switch ((SimpleEvent.Target)targetType.enumValueIndex)
                {
                case SimpleEvent.Target.GameObjects:
                    GUITargetGameObjects();
                    break;

                case SimpleEvent.Target.Tags:
                    GUITargetTags();
                    break;

                default:
                    Debug.LogError("Unknown option: " + targetType.enumValueIndex);
                    break;
                }
            });

            if (MadGUI.Foldout("On Trigger Enter", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerEnterAction, false);
                });
            }

            if (MadGUI.Foldout("On Trigger Stay", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerStayAction, true);
                });
            }

            if (MadGUI.Foldout("On Trigger Leave", false))
            {
                MadGUI.Indent(() => {
                    GUIAction(onTriggerLeaveAction, false);
                });
            }

            serializedObject.ApplyModifiedProperties();
        }
    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();
    }