예제 #1
0
        /// <summary>
        /// Inspector.
        /// </summary>
        protected override void Inspector()
        {
            if (effect == null)
            {
                effect = this.target as SpriteColorRampMask;
            }

            EditorGUIUtility.fieldWidth = 40.0f;

            effect.palettes[0] = (SpriteColorRampPalettes)EditorGUILayout.EnumPopup(@"Palette 1 (Red)", effect.palettes[0]);

            effect.palettes[1] = (SpriteColorRampPalettes)EditorGUILayout.EnumPopup(@"Palette 2 (Green)", effect.palettes[1]);

            effect.palettes[2] = (SpriteColorRampPalettes)EditorGUILayout.EnumPopup(@"Palette 3 (Blue)", effect.palettes[2]);

            effect.strength = SpriteColorFXEditorHelper.IntSliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, Mathf.RoundToInt(effect.strength * 100.0f), 0, 100, 100) * 0.01f;

            effect.gammaCorrect = SpriteColorFXEditorHelper.SliderWithReset(@"Gamma", SpriteColorFXEditorHelper.TooltipGamma, effect.gammaCorrect, 0.5f, 3.0f, 1.2f);

            effect.uvScroll = SpriteColorFXEditorHelper.SliderWithReset(@"UV Scroll", SpriteColorFXEditorHelper.TooltipUVScroll, effect.uvScroll, 0.0f, 1.0f, 0.0f);

            EditorGUIUtility.fieldWidth = 60.0f;

            SpriteColorFXEditorHelper.MinMaxSliderWithReset(@"Luminance range", SpriteColorFXEditorHelper.TooltipLuminanceRange, ref effect.luminanceRangeMin, ref effect.luminanceRangeMax, 0.0f, 1.0f, 0.0f, 1.0f);

            effect.invertLum = SpriteColorFXEditorHelper.ToogleWithReset(@"Invert luminance", SpriteColorFXEditorHelper.TooltipInvertLuminance, effect.invertLum, false);

            effect.textureMask = EditorGUILayout.ObjectField(new GUIContent(@"Mask (RGBA)", SpriteColorFXEditorHelper.TooltipTextureMask), effect.textureMask, typeof(Texture2D), false) as Texture2D;
        }
        /// <summary>
        /// Inspector.
        /// </summary>
        protected override void Inspector()
        {
            if (effect == null)
            {
                effect = this.target as SpriteColorDissolve;
            }

            EditorGUIUtility.fieldWidth = 40.0f;

            effect.dissolveAmount = SpriteColorFXEditorHelper.SliderWithReset(@"Amount", SpriteColorFXEditorHelper.TooltipNoiseAmount, effect.dissolveAmount * 100.0f, 0.0f, 100.0f, 0.0f) * 0.01f;

            DissolveShaderType newShaderType = (DissolveShaderType)EditorGUILayout.EnumPopup(new GUIContent(@"Shader", @"Texture type"), effect.shaderType);

            if (newShaderType != effect.shaderType)
            {
                effect.SetShaderType(newShaderType);
            }

            if (effect.shaderType != DissolveShaderType.Normal)
            {
                SpriteColorHelper.PixelOp newPixelOp = (SpriteColorHelper.PixelOp)EditorGUILayout.EnumPopup(new GUIContent(@"Blend mode", @"Blend modes"), effect.pixelOp);
                if (newPixelOp != effect.pixelOp)
                {
                    effect.SetPixelOp(newPixelOp);
                }
            }

            DissolveTextureType newTextureType = (DissolveTextureType)EditorGUILayout.EnumPopup(@"Dissolve type", effect.dissolveTextureType);

            if (newTextureType != effect.dissolveTextureType)
            {
                effect.SetTextureType(newTextureType);
            }

            if (effect.dissolveTextureType == DissolveTextureType.Custom)
            {
                effect.dissolveTexture = EditorGUILayout.ObjectField(@"Dissolve texture", effect.dissolveTexture, typeof(Texture), false) as Texture;
            }

            effect.dissolveUVScale = SpriteColorFXEditorHelper.SliderWithReset(@"Dissolve UV scale", SpriteColorFXEditorHelper.TooltipNoiseAmount, effect.dissolveUVScale, 0.1f, 5.0f, 1.0f);

            effect.dissolveInverse = EditorGUILayout.Toggle(new GUIContent(@"Invert", SpriteColorFXEditorHelper.TooltipNoiseAmount), effect.dissolveInverse);

            if (effect.shaderType != DissolveShaderType.Normal)
            {
                effect.dissolveBorderWitdh = SpriteColorFXEditorHelper.SliderWithReset(@"Border witdh", SpriteColorFXEditorHelper.TooltipNoiseAmount, effect.dissolveBorderWitdh * 500.0f, 0.0f, 100.0f, 50.0f) * 0.002f;
            }

            if (effect.shaderType == DissolveShaderType.BorderColor)
            {
                effect.dissolveBorderColor = SpriteColorFXEditorHelper.ColorWithReset(@"Border color", SpriteColorFXEditorHelper.TooltipNoiseAmount, effect.dissolveBorderColor, Color.grey);
            }
            else if (effect.shaderType == DissolveShaderType.BorderTexture)
            {
                effect.borderTexture = EditorGUILayout.ObjectField(@"Border texture", effect.borderTexture, typeof(Texture), false) as Texture;
                effect.borderUVScale = SpriteColorFXEditorHelper.SliderWithReset(@"Border UV scale", SpriteColorFXEditorHelper.TooltipNoiseAmount, effect.borderUVScale, 0.1f, 5.0f, 1.0f);
            }
        }
        private void UVParamsInspectorGUI(ref Vector4 uvParams, ref float angle)
        {
            EditorGUI.indentLevel++;

            uvParams.x = SpriteColorFXEditorHelper.SliderWithReset(@"U coord scale", @"U texture coordinate scale", uvParams.x, -5f, 5f, 1f);
            uvParams.y = SpriteColorFXEditorHelper.SliderWithReset(@"V coord scale", @"V texture coordinate scale", uvParams.y, -5f, 5f, 1f);
            uvParams.z = SpriteColorFXEditorHelper.SliderWithReset(@"U coord vel", @"U texture coordinate velocity", uvParams.z, -2f, 2f, 0f);
            uvParams.w = SpriteColorFXEditorHelper.SliderWithReset(@"V coord vel", @"V texture coordinate velocity", uvParams.w, -2f, 2f, 0f);
            angle      = SpriteColorFXEditorHelper.SliderWithReset(@"UV angle", @"UV rotation angle", angle, 0f, 360f, 0f);

            EditorGUI.indentLevel--;
        }
예제 #4
0
        /// <summary>
        /// Inspector.
        /// </summary>
        protected override void Inspector()
        {
            if (effect == null)
            {
                effect = this.target as SpriteColorGlass;
            }

            EditorGUIUtility.fieldWidth = 40.0f;

            effect.strength = SpriteColorFXEditorHelper.SliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, effect.strength * 100.0f, 0.0f, 100.0f, 100.0f) * 0.01f;

            effect.distortion = SpriteColorFXEditorHelper.SliderWithReset(@"Distortion", SpriteColorFXEditorHelper.TooltipDistortion, effect.distortion, 0.0f, 10.0f, 1.0f);

            effect.refraction = SpriteColorFXEditorHelper.SliderWithReset(@"Refraction", SpriteColorFXEditorHelper.TooltipRefraction, effect.refraction, 0.0f, 10.0f, 0.0f);
        }
예제 #5
0
        /// <summary>
        /// Inspector.
        /// </summary>
        protected override void Inspector()
        {
            if (baseTarget == null)
            {
                baseTarget = this.target as SpriteColorShiftRadial;
            }

            EditorGUIUtility.fieldWidth = 40.0f;

            baseTarget.strength = SpriteColorFXEditorHelper.IntSliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, Mathf.RoundToInt(baseTarget.strength * 100.0f), 0, 100, 0) * 0.01f;

            baseTarget.noiseAmount = SpriteColorFXEditorHelper.SliderWithReset(@"Noise amount", SpriteColorFXEditorHelper.TooltipNoiseAmount, baseTarget.noiseAmount * 100.0f, 0.0f, 100.0f, 0.0f) * 0.01f;

            baseTarget.noiseSpeed = SpriteColorFXEditorHelper.SliderWithReset(@"Noise speed", SpriteColorFXEditorHelper.TooltipNoiseSpeed, baseTarget.noiseSpeed * 100.0f, 0.0f, 100.0f, 0.0f) * 0.01f;
        }
        /// <summary>
        /// Inspector.
        /// </summary>
        protected override void Inspector()
        {
            if (baseTarget == null)
            {
                baseTarget = this.target as SpriteColorShiftLinear;
            }

            EditorGUIUtility.fieldWidth = 40.0f;

            baseTarget.redShift = SpriteColorFXEditorHelper.Vector2WithReset(@"Red offset", SpriteColorFXEditorHelper.TooltipRedOffset, baseTarget.redShift, Vector2.zero);

            baseTarget.greenShift = SpriteColorFXEditorHelper.Vector2WithReset(@"Green offset", SpriteColorFXEditorHelper.TooltipGreenOffset, baseTarget.greenShift, Vector2.zero);

            baseTarget.blueShift = SpriteColorFXEditorHelper.Vector2WithReset(@"Blue offset", SpriteColorFXEditorHelper.TooltipBlueOffset, baseTarget.blueShift, Vector2.zero);

            baseTarget.noiseAmount = SpriteColorFXEditorHelper.SliderWithReset(@"Noise amount", SpriteColorFXEditorHelper.TooltipNoiseAmount, baseTarget.noiseAmount * 100.0f, 0.0f, 100.0f, 0.0f) * 0.01f;

            baseTarget.noiseSpeed = SpriteColorFXEditorHelper.SliderWithReset(@"Noise speed", SpriteColorFXEditorHelper.TooltipNoiseSpeed, baseTarget.noiseSpeed * 100.0f, 0.0f, 100.0f, 0.0f) * 0.01f;
        }
        /// <summary>
        /// Inspector.
        /// </summary>
        protected override void Inspector()
        {
            if (effect == null)
            {
                effect = this.target as SpriteColorInstagram;
            }

            EditorGUIUtility.fieldWidth = 40.0f;

            effect.Filter = (SpriteColorInstagram.Filters)EditorGUILayout.EnumPopup(@"Filter", effect.Filter);

            effect.strength = SpriteColorFXEditorHelper.SliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, effect.strength * 100.0f, 0.0f, 100.0f, 0.0f) * 0.01f;

            effect.contrast = SpriteColorFXEditorHelper.SliderWithReset(@"Contrast", @"Contrast [0.0 - 10.0]", effect.contrast, 0.0f, 10.0f, 1.0f);

            effect.gamma = SpriteColorFXEditorHelper.SliderWithReset(@"Gamma", @"Gamma [0.001 - 10.0]", effect.gamma, 0.001f, 10.0f, 1.0f);

            effect.filmContrast = EditorGUILayout.Toggle(@"Film contrast", effect.filmContrast);
        }
        /// <summary>
        /// Inspector.
        /// </summary>
        protected override void Inspector()
        {
            if (effect == null)
            {
                effect = this.target as SpriteColorRamp;
            }

            EditorGUIUtility.fieldWidth = 40.0f;

            effect.palette = (SpriteColorRampPalettes)EditorGUILayout.EnumPopup(@"Palette", effect.palette);

            effect.strength = SpriteColorFXEditorHelper.IntSliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, Mathf.RoundToInt(effect.strength * 100.0f), 0, 100, 100) * 0.01f;

            effect.gammaCorrect = SpriteColorFXEditorHelper.SliderWithReset(@"Gamma", SpriteColorFXEditorHelper.TooltipGamma, effect.gammaCorrect, 0.5f, 3.0f, 1.2f);

            effect.uvScroll = SpriteColorFXEditorHelper.SliderWithReset(@"UV Scroll", SpriteColorFXEditorHelper.TooltipUVScroll, effect.uvScroll, 0.0f, 1.0f, 0.0f);

            EditorGUIUtility.fieldWidth = 60.0f;

            SpriteColorFXEditorHelper.MinMaxSliderWithReset(@"Luminance range", SpriteColorFXEditorHelper.TooltipLuminanceRange, ref effect.luminanceRangeMin, ref effect.luminanceRangeMax, 0.0f, 1.0f, 0.0f, 1.0f);

            effect.invertLum = SpriteColorFXEditorHelper.ToogleWithReset(@"Invert luminance", SpriteColorFXEditorHelper.TooltipInvertLuminance, effect.invertLum, false);
        }
        /// <summary>
        /// Inspector.
        /// </summary>
        protected override void Inspector()
        {
            if (effect == null)
            {
                effect = this.target as SpriteColorOutline;
            }

            EditorGUIUtility.fieldWidth = 40.0f;

            effect.Mode = (SpriteColorOutline.OutlineMode)EditorGUILayout.EnumPopup(new GUIContent(@"Mode", @"Outline mode"), effect.Mode);

            effect.GrowthMode = (SpriteColorOutline.OutlineGrowthMode)EditorGUILayout.EnumPopup(new GUIContent(@"Growth mode", @"outline growth mode"), effect.GrowthMode);

            if (effect.GrowthMode == SpriteColorOutline.OutlineGrowthMode.Proportional)
            {
                effect.outlineSize = SpriteColorFXEditorHelper.SliderWithReset(@"Size (%)", @"Outline width", effect.outlineSize * (100.0f / 0.03f), 0.0f, 100.0f, 25.0f) * (0.03f / 100.0f);
            }
            else
            {
                effect.outlineSize = (int)SpriteColorFXEditorHelper.SliderWithReset(@"Size (px)", @"Outline width", effect.outlineSize, 0.0f, 50.0f, 5.0f);
            }

            if (effect.Mode == SpriteColorOutline.OutlineMode.Normal)
            {
                effect.outlineColor = EditorGUILayout.ColorField(@"Color", effect.outlineColor);
            }
            else if (effect.Mode == SpriteColorOutline.OutlineMode.Gradient)
            {
                effect.Direction = (SpriteColorOutline.GradientDirection)EditorGUILayout.EnumPopup(new GUIContent(@"Direction", @"Gradient direction"), effect.Direction);

                effect.outlineColor = EditorGUILayout.ColorField(@"Color #1", effect.outlineColor);

                effect.outlineColor2 = EditorGUILayout.ColorField(@"Color #2", effect.outlineColor2);

                effect.gradientScale = SpriteColorFXEditorHelper.SliderWithReset(@"Scale", @"Gradient scale", effect.gradientScale, -10.0f, 10.0f, 1.0f);

                effect.gradientOffset = SpriteColorFXEditorHelper.SliderWithReset(@"Offset", @"Gradient offset", effect.gradientOffset, 0.0f, 5.0f, 0.0f);
            }
            else
            {
                effect.outlineColor = EditorGUILayout.ColorField(@"Color", effect.outlineColor);

                effect.outlineTexture = EditorGUILayout.ObjectField(@"Outline texture", effect.outlineTexture, typeof(Texture), false) as Texture;

                effect.outlineTextureUVParams.x = SpriteColorFXEditorHelper.SliderWithReset(@"U coord scale", @"U texture coordinate scale", effect.outlineTextureUVParams.x, -5.0f, 5.0f, 1.0f);
                effect.outlineTextureUVParams.y = SpriteColorFXEditorHelper.SliderWithReset(@"V coord scale", @"V texture coordinate scale", effect.outlineTextureUVParams.y, -5.0f, 5.0f, 1.0f);
                effect.outlineTextureUVParams.z = SpriteColorFXEditorHelper.SliderWithReset(@"U coord vel", @"U texture coordinate velocity", effect.outlineTextureUVParams.z, -2.0f, 2.0f, 0.0f);
                effect.outlineTextureUVParams.w = SpriteColorFXEditorHelper.SliderWithReset(@"V coord vel", @"V texture coordinate velocity", effect.outlineTextureUVParams.w, -2.0f, 2.0f, 0.0f);
                effect.outlineTextureUVAngle    = SpriteColorFXEditorHelper.SliderWithReset(@"UV angle", @"UV rotation angle", effect.outlineTextureUVAngle, 0.0f, 360.0f, 0.0f);
            }

            bool foldout = EditorGUILayout.Foldout(advancedSettingsFoldout, @"Advanced settings");

            if (foldout != advancedSettingsFoldout)
            {
                advancedSettingsFoldout = foldout;

                PlayerPrefs.SetInt(@"SpriteColorFX.advancedSettingsFoldout", advancedSettingsFoldout == true ? 1 : 0);
            }

            if (advancedSettingsFoldout == true)
            {
                EditorGUI.indentLevel++;

                effect.alphaThreshold = SpriteColorFXEditorHelper.SliderWithReset(@"Alpha Threshold", @"Alpha Threshold", effect.alphaThreshold, 0.0f, 1.0f, 0.1f);

                bool enableOverlap = EditorGUILayout.Toggle(@"Overlap", effect.overlap);
                if (enableOverlap != effect.overlap)
                {
                    effect.SetOverlap(enableOverlap);
                }

                Texture customMask = EditorGUILayout.ObjectField(@"Custom mask", effect.customMask, typeof(Texture), false) as Texture;
                if (customMask != effect.customMask)
                {
                    effect.SetCustomMask(customMask);
                }

                EditorGUI.indentLevel--;
            }
        }
        /// <summary>
        /// OnInspectorGUI.
        /// </summary>
        public override void OnInspectorGUI()
        {
            if (baseTarget == null)
            {
                baseTarget = this.target as SpriteColorBase;
            }

            EditorGUIUtility.LookLikeControls();

            EditorGUI.indentLevel = 0;

            EditorGUIUtility.labelWidth = 125.0f;

            EditorGUILayout.BeginVertical();
            {
                EditorGUILayout.Separator();

                /////////////////////////////////////////////////
                // Lit.
                /////////////////////////////////////////////////

                baseTarget.LightMode = (LightMode)EditorGUILayout.EnumPopup(@"Lighting mode", baseTarget.LightMode);
                if (baseTarget.LightMode == LightMode.BumpLit)
                {
                    EditorGUI.indentLevel++;

                    baseTarget.shininess = SpriteColorFXEditorHelper.SliderWithReset(@"Shininess", @"", baseTarget.shininess, 0.03f, 1.0f, 0.078125f);

                    baseTarget.specularColor = EditorGUILayout.ColorField(@"Specular color", baseTarget.specularColor);

                    baseTarget.normalTex = EditorGUILayout.ObjectField(@"Bump texture", baseTarget.normalTex, typeof(Texture), false) as Texture;

                    baseTarget.bumpIntensity = SpriteColorFXEditorHelper.SliderWithReset(@"Bump intensity", @"", baseTarget.bumpIntensity, 0.0f, 5.0f, 1.0f);

                    bumpFactorFoldout = EditorGUILayout.Foldout(bumpFactorFoldout, @"Invert channels");
                    if (bumpFactorFoldout == true)
                    {
                        EditorGUI.indentLevel++;

                        baseTarget.invertRedNormalChannel = EditorGUILayout.Toggle(@"Red", baseTarget.invertRedNormalChannel);

                        baseTarget.invertGreenNormalChannel = EditorGUILayout.Toggle(@"Green", baseTarget.invertGreenNormalChannel);

                        EditorGUI.indentLevel--;
                    }

                    EditorGUI.indentLevel--;

                    EditorGUILayout.Separator();
                }

                /////////////////////////////////////////////////
                // Common.
                /////////////////////////////////////////////////

                Inspector();

                EditorGUILayout.Separator();

                /////////////////////////////////////////////////
                // Misc.
                /////////////////////////////////////////////////

                EditorGUILayout.BeginHorizontal();
                {
                    if (GUILayout.Button(new GUIContent("[web]", "Open website"), GUI.skin.label) == true)
                    {
                        Application.OpenURL(SpriteColorFXEditorHelper.DocumentationURL);
                    }

                    GUILayout.FlexibleSpace();

                    if (GUILayout.Button("Reset ALL") == true)
                    {
                        ResetDefaultValues();
                    }
                }
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.Separator();

                if (string.IsNullOrEmpty(Warnings) == false)
                {
                    EditorGUILayout.HelpBox(Warnings, MessageType.Warning);

                    EditorGUILayout.Separator();
                }

                if (string.IsNullOrEmpty(Errors) == false)
                {
                    EditorGUILayout.HelpBox(Errors, MessageType.Error);

                    EditorGUILayout.Separator();
                }

                if (string.IsNullOrEmpty(Help) == false)
                {
                    EditorGUILayout.HelpBox(Help, MessageType.Info);
                }
            }
            EditorGUILayout.EndVertical();

            Warnings = Errors = string.Empty;

            if (GUI.changed == true)
            {
                EditorUtility.SetDirty(target);
            }

            EditorGUIUtility.LookLikeControls();

            EditorGUI.indentLevel = 0;

            EditorGUIUtility.labelWidth = 125.0f;
        }