/// <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> /// Vector2 field with reset button. /// </summary> public static Vector2 Vector2WithReset(string label, string tooltip, Vector2 value, Vector2 defaultValue) { EditorGUILayout.BeginHorizontal(); { EditorGUILayout.LabelField(new GUIContent(label, tooltip)); float oldLabelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 20.0f; value.x = EditorGUILayout.FloatField("X", value.x); value.y = EditorGUILayout.FloatField("Y", value.y); EditorGUIUtility.labelWidth = oldLabelWidth; if (SpriteColorFXEditorHelper.ButtonImage(string.Empty, string.Format("Reset to '{0}'", defaultValue), @"Icons/ic_cached") == true) { value = defaultValue; } } EditorGUILayout.EndHorizontal(); return(value); }
/// <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--; }
/// <summary> /// Toogle with a reset button. /// </summary> public static bool ToogleWithReset(string label, string tooltip, bool value, bool defaultValue) { EditorGUILayout.BeginHorizontal(); { value = EditorGUILayout.Toggle(new GUIContent(label, tooltip), value); if (SpriteColorFXEditorHelper.ButtonImage(string.Empty, string.Format("Reset to '{0}.'", defaultValue), @"Icons/ic_cached") == true) { value = defaultValue; } } EditorGUILayout.EndHorizontal(); return(value); }
/// <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); }
/// <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> /// A slider with a reset button. /// </summary> public static int IntSliderWithReset(string label, string tooltip, int value, int minValue, int maxValue, int defaultValue) { EditorGUILayout.BeginHorizontal(); { value = EditorGUILayout.IntSlider(new GUIContent(label, tooltip), value, minValue, maxValue); if (SpriteColorFXEditorHelper.ButtonImage(string.Empty, string.Format("Reset to '{0}'", defaultValue), @"Icons/ic_cached") == true) { value = defaultValue; } } EditorGUILayout.EndHorizontal(); return(value); }
/// <summary> /// A slider with a reset button. /// </summary> public static void MinMaxSliderWithReset(string label, string tooltip, ref float min, ref float max, float minLimit, float maxLimit, float defaultMinValue, float defaultMaxValue) { EditorGUILayout.BeginHorizontal(); { EditorGUILayout.MinMaxSlider(new GUIContent(label, tooltip), ref min, ref max, minLimit, maxLimit); EditorGUILayout.LabelField(string.Format("{0:0.00}-{1:0.00}", min, max), GUI.skin.textField, GUILayout.Width(60.0f)); if (SpriteColorFXEditorHelper.ButtonImage(string.Empty, string.Format("Reset to ({0}..{1}).", defaultMinValue, defaultMaxValue), @"Icons/ic_cached") == true) { min = defaultMinValue; max = defaultMaxValue; } } EditorGUILayout.EndHorizontal(); }
/// <summary> /// Inspector. /// </summary> protected override void Inspector() { if (baseTarget == null) { baseTarget = base.target as SpriteColorBlend; } EditorGUIUtility.fieldWidth = 40.0f; baseTarget.strength = (float)SpriteColorFXEditorHelper.IntSliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, Mathf.RoundToInt(baseTarget.strength * 100.0f), 0, 100, 100) * 0.01f; SpriteColorHelper.PixelOp newPixelOp = (SpriteColorHelper.PixelOp)EditorGUILayout.EnumPopup(new GUIContent(@"Blend mode", @"Blend modes"), baseTarget.pixelOp); if (newPixelOp != baseTarget.pixelOp) { baseTarget.SetPixelOp(newPixelOp); } }
/// <summary> /// Vector2 field with reset button. /// </summary> public static Color ColorWithReset(string label, string tooltip, Color value, Color defaultValue) { EditorGUILayout.BeginHorizontal(); { EditorGUILayout.LabelField(new GUIContent(label, tooltip)); value = EditorGUILayout.ColorField(value); if (SpriteColorFXEditorHelper.ButtonImage(string.Empty, string.Format("Reset to '{0}'", defaultValue), @"Icons/ic_cached") == true) { value = defaultValue; } } EditorGUILayout.EndHorizontal(); return(value); }
/// <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 (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 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); }
private void OnGUI() { EditorGUIUtility.LookLikeControls(); EditorGUILayout.BeginVertical(); { EditorGUIUtility.LookLikeControls(24.0f, 50.0f); // Colors EditorGUILayout.BeginVertical(GUI.skin.box); { if (presets.Count > 0) { scroll = EditorGUILayout.BeginScrollView(scroll, GUI.skin.box); int presetToDelete = -1; int moveUp = -1; int moveDown = -1; int insertUp = -1; for (int i = 0; i < presets.Count; ++i) { GUI.backgroundColor = (i % 2 == 0) ? Color.white * 0.1f : Color.white * 0.2f; EditorGUILayout.BeginHorizontal(SpriteColorFXEditorHelper.StyleScrollRow); { GUI.backgroundColor = Color.white; EditorGUILayout.LabelField((i + 1).ToString("0000"), GUILayout.Width(32.0f)); EditorGUILayout.Space(); string newName = EditorGUILayout.TextField(presets[i].name, GUILayout.MinWidth(128.0f)); if (newName != presets[i].name) { presets[i].name = newName; assetChanged = true; } EditorGUILayout.Space(); for (int j = 0; j < presets[i].colors.Length; ++j) { Color newColor = EditorGUILayout.ColorField("#" + (j + 1), presets[i].colors[j]); if (newColor != presets[i].colors[j]) { presets[i].colors[j] = newColor; assetChanged = true; } GUILayout.Space(5.0f); } EditorGUILayout.Space(); if (SpriteColorFXEditorHelper.ButtonImage(string.Empty, SpriteColorFXEditorHelper.TooltipInsertPallete, @"Icons/ic_playlist_add") == true) { insertUp = i; } EditorGUILayout.Space(); if (SpriteColorFXEditorHelper.ButtonImage(string.Empty, SpriteColorFXEditorHelper.TooltipMoveUp, @"Icons/ic_keyboard_arrow_up") == true) { moveUp = i; } if (SpriteColorFXEditorHelper.ButtonImage(string.Empty, SpriteColorFXEditorHelper.TooltipMoveDown, @"Icons/ic_keyboard_arrow_down") == true) { moveDown = i; } EditorGUILayout.Space(); if (SpriteColorFXEditorHelper.ButtonImage(string.Empty, SpriteColorFXEditorHelper.TooltipRemove, @"Icons/ic_clear") == true) { presetToDelete = i; } } EditorGUILayout.EndHorizontal(); } if (presetToDelete != -1) { assetChanged = true; presets.RemoveAt(presetToDelete); } if (insertUp != -1) { assetChanged = true; presets.Insert(insertUp, new SpriteColorRampPreset.ColorPreset()); } if (moveUp > 0) { assetChanged = true; SpriteColorRampPreset.ColorPreset colorPreset = presets[moveUp]; presets.RemoveAt(moveUp); presets.Insert(moveUp - 1, colorPreset); } if (moveDown != -1 && moveDown < (presets.Count - 1)) { assetChanged = true; SpriteColorRampPreset.ColorPreset colorPreset = presets[moveDown]; presets.RemoveAt(moveDown); presets.Insert(moveDown + 1, colorPreset); } EditorGUILayout.EndScrollView(); } GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(); { if (string.IsNullOrEmpty(assetFile) == true) { EditorGUILayout.Space(); } else { if (assetChanged == true) { EditorGUILayout.LabelField(string.Format("*'{0}'*", assetFile)); } else { GUI.enabled = false; EditorGUILayout.LabelField(string.Format("'{0}'", assetFile)); GUI.enabled = true; } } /* Planned for upcoming updates. * if (GUILayout.Button("Adobe Color CC") == true) * AddPaletteFromAdobeColorCC(); */ /* Planned for upcoming updates. * if (GUILayout.Button("COLOURlovers") == true) * AddPaletteFromCOLOURlovers(); */ /* Planned for upcoming updates. * if (GUILayout.Button("Add pallete from image") == true) * AddPaletteFromImage(); */ if (GUILayout.Button(@"Add pallete", GUILayout.Width(75.0f)) == true) { presets.Add(new SpriteColorRampPreset.ColorPreset()); assetChanged = true; } if (GUILayout.Button(@"Clear all", GUILayout.Width(75.0f)) == true && presets.Count > 0) { if (EditorUtility.DisplayDialog(@"Clear all palletes.", @"Delete all palettes?", @"Ok", @"Cancel") == true) { presets.Clear(); assetChanged = true; } } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); EditorGUIUtility.LookLikeControls(128.0f, 50.0f); // Buttons EditorGUILayout.BeginHorizontal(GUI.skin.box); { EditorGUILayout.BeginVertical(); { bool option = EditorGUILayout.Toggle(new GUIContent(@"Interpolate colors", SpriteColorFXEditorHelper.TooltipInterpolateColors), interpolateColors); if (option != interpolateColors) { interpolateColors = option; assetChanged = true; } option = EditorGUILayout.Toggle(new GUIContent(@"Sort by luminance", SpriteColorFXEditorHelper.TooltipSortByLuminance), sortColorsByLuminance); if (option != sortColorsByLuminance) { sortColorsByLuminance = option; assetChanged = true; } } EditorGUILayout.EndVertical(); GUILayout.FlexibleSpace(); EditorGUILayout.BeginVertical(); { if (GUILayout.Button("Load", GUILayout.Width(75.0f)) == true) { string filePath = EditorUtility.OpenFilePanel(@"Load asset", Application.dataPath + "/" + Path.GetDirectoryName(assetFile), "asset"); if (string.IsNullOrEmpty(filePath) == false) { LoadAsset(filePath); } } if (GUILayout.Button("Save", GUILayout.Width(75.0f)) == true) { string filePath = EditorUtility.SaveFilePanel(@"Save asset", Application.dataPath + "/" + Path.GetDirectoryName(assetFile), Path.GetFileNameWithoutExtension(assetFile), "asset"); if (string.IsNullOrEmpty(filePath) == false) { SaveAsset(filePath); } } } EditorGUILayout.EndVertical(); EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button(new GUIContent(@"Apply", SpriteColorFXEditorHelper.TooltipApply), GUILayout.ExpandHeight(true), GUILayout.Width(75.0f)) == true) { Process(); } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); }
/// <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> /// Inspector. /// </summary> protected override void Inspector() { if (baseTarget == null) { baseTarget = base.target as SpriteColorMasks3; } EditorGUIUtility.fieldWidth = 40.0f; baseTarget.strength = (float)SpriteColorFXEditorHelper.IntSliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, Mathf.RoundToInt(baseTarget.strength * 100.0f), 0, 100, 100) * 0.01f; SpriteColorHelper.PixelOp newPixelOp = (SpriteColorHelper.PixelOp)EditorGUILayout.EnumPopup(new GUIContent(@"Blend mode", @"Blend modes"), baseTarget.pixelOp); if (newPixelOp != baseTarget.pixelOp) { baseTarget.SetPixelOp(newPixelOp); } EditorGUILayout.LabelField(@"#1 mask (red)"); { EditorGUI.indentLevel++; baseTarget.strengthMaskRed = (float)SpriteColorFXEditorHelper.IntSliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, Mathf.RoundToInt(baseTarget.strengthMaskRed * 100f), 0, 100, 100) * 0.01f; baseTarget.colorMaskRed = EditorGUILayout.ColorField(@"Color", baseTarget.colorMaskRed); baseTarget.textureMaskRed = (EditorGUILayout.ObjectField(new GUIContent(@"Texture (RGB)", SpriteColorFXEditorHelper.TooltipTextureMask), baseTarget.textureMaskRed, typeof(Texture2D), false, GUILayout.Height(54.0f)) as Texture2D); if (baseTarget.textureMaskRed != null) { EditorGUILayout.LabelField(@"UV params"); UVParamsInspectorGUI(ref baseTarget.textureMaskRedUVParams, ref baseTarget.textureMaskRedUVAngle); } EditorGUI.indentLevel--; } EditorGUILayout.LabelField(@"#2 mask (green)"); { EditorGUI.indentLevel++; baseTarget.strengthMaskGreen = (float)SpriteColorFXEditorHelper.IntSliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, Mathf.RoundToInt(baseTarget.strengthMaskGreen * 100f), 0, 100, 100) * 0.01f; baseTarget.colorMaskGreen = EditorGUILayout.ColorField(@"Color", baseTarget.colorMaskGreen); baseTarget.textureMaskGreen = (EditorGUILayout.ObjectField(new GUIContent(@"Texture (RGB)", SpriteColorFXEditorHelper.TooltipTextureMask), baseTarget.textureMaskGreen, typeof(Texture2D), false, GUILayout.Height(54.0f)) as Texture2D); if (baseTarget.textureMaskGreen != null) { EditorGUILayout.LabelField(@"UV params"); UVParamsInspectorGUI(ref baseTarget.textureMaskGreenUVParams, ref baseTarget.textureMaskGreenUVAngle); } EditorGUI.indentLevel--; } EditorGUILayout.LabelField(@"#3 mask (blue)"); { EditorGUI.indentLevel++; baseTarget.strengthMaskBlue = (float)SpriteColorFXEditorHelper.IntSliderWithReset(@"Strength", SpriteColorFXEditorHelper.TooltipStrength, Mathf.RoundToInt(baseTarget.strengthMaskBlue * 100f), 0, 100, 100) * 0.01f; baseTarget.colorMaskBlue = EditorGUILayout.ColorField(@"Color", baseTarget.colorMaskBlue); baseTarget.textureMaskBlue = (EditorGUILayout.ObjectField(new GUIContent(@"Texture (RGB)", SpriteColorFXEditorHelper.TooltipTextureMask), baseTarget.textureMaskBlue, typeof(Texture2D), false, GUILayout.Height(54.0f)) as Texture2D); if (baseTarget.textureMaskBlue != null) { EditorGUILayout.LabelField(@"UV params"); UVParamsInspectorGUI(ref baseTarget.textureMaskBlueUVParams, ref baseTarget.textureMaskBlueUVAngle); } EditorGUI.indentLevel--; } EditorGUILayout.Separator(); baseTarget.textureMask = (EditorGUILayout.ObjectField(new GUIContent(@"Mask #1 (RGB)", SpriteColorFXEditorHelper.TooltipTextureMask), this.baseTarget.textureMask, typeof(Texture2D), false, GUILayout.Height(54.0f)) as Texture2D); }
/// <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; }