107 lines
2.8 KiB
C#
107 lines
2.8 KiB
C#
using System.IO;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace AllIn13DShader
|
|
{
|
|
public class GradientCreatorDrawer
|
|
{
|
|
private GradientCreatorTool gradientCreatorTool;
|
|
private CommonStyles commonStyles;
|
|
|
|
private Texture2D GradientTex
|
|
{
|
|
get
|
|
{
|
|
return gradientCreatorTool.gradientTex;
|
|
}
|
|
set
|
|
{
|
|
gradientCreatorTool.gradientTex = value;
|
|
}
|
|
}
|
|
|
|
private Gradient Grad
|
|
{
|
|
get
|
|
{
|
|
return gradientCreatorTool.gradient;
|
|
}
|
|
set
|
|
{
|
|
gradientCreatorTool.gradient = value;
|
|
}
|
|
}
|
|
|
|
private TextureSizes GradientSizes
|
|
{
|
|
get
|
|
{
|
|
return gradientCreatorTool.gradientSizes;
|
|
}
|
|
set
|
|
{
|
|
gradientCreatorTool.gradientSizes = value;
|
|
}
|
|
}
|
|
|
|
private FilterMode GradientFiltering
|
|
{
|
|
get
|
|
{
|
|
return gradientCreatorTool.gradientFiltering;
|
|
}
|
|
set
|
|
{
|
|
gradientCreatorTool.gradientFiltering = value;
|
|
}
|
|
}
|
|
|
|
public GradientCreatorDrawer(GradientCreatorTool gradientCreatorTool, CommonStyles commonStyles)
|
|
{
|
|
this.gradientCreatorTool = gradientCreatorTool;
|
|
this.commonStyles = commonStyles;
|
|
}
|
|
|
|
public void Draw()
|
|
{
|
|
GUILayout.Label("Color Gradient Creator", commonStyles.bigLabel);
|
|
GUILayout.Space(20);
|
|
GUILayout.Label("This feature can be used to create textures for the Color Ramp Effect", EditorStyles.boldLabel);
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
Grad = EditorGUILayout.GradientField("Color Gradient: ", Grad, GUILayout.Height(25), GUILayout.MaxWidth(CommonStyles.BUTTON_WIDTH));
|
|
EditorGUILayout.BeginHorizontal();
|
|
{
|
|
GUILayout.Label("Texture Size:", GUILayout.MaxWidth(145));
|
|
GradientSizes = (TextureSizes)EditorGUILayout.EnumPopup(GradientSizes, GUILayout.MaxWidth(200));
|
|
}
|
|
EditorGUILayout.EndHorizontal();
|
|
EditorGUILayout.BeginHorizontal();
|
|
{
|
|
GUILayout.Label("New Textures Filtering: ", GUILayout.MaxWidth(145));
|
|
GradientFiltering = (FilterMode)EditorGUILayout.EnumPopup(GradientFiltering, GUILayout.MaxWidth(200));
|
|
}
|
|
EditorGUILayout.EndHorizontal();
|
|
|
|
bool gradientChanged = EditorGUI.EndChangeCheck();
|
|
if (gradientChanged)
|
|
{
|
|
gradientCreatorTool.CreateGradientTexture();
|
|
}
|
|
|
|
GUILayout.Space(20);
|
|
GUILayout.Label("Select the folder where new Color Gradient Textures will be saved", EditorStyles.boldLabel);
|
|
|
|
GlobalConfiguration.instance.GradientSavePath = EditorUtils.DrawSelectorFolder(GlobalConfiguration.instance.GradientSavePath, /*AllIn13DShaderConfig.GRADIENT_SAVE_PATH_DEFAULT,*/ "Gradients");
|
|
if (Directory.Exists(GlobalConfiguration.instance.GradientSavePath))
|
|
{
|
|
if (GUILayout.Button("Save Color Gradient Texture", GUILayout.MaxWidth(CommonStyles.BUTTON_WIDTH)))
|
|
{
|
|
EditorUtils.SaveTextureAsPNG(GlobalConfiguration.instance.GradientSavePath, "ColorGradient", "Gradient", GradientTex, GradientFiltering,
|
|
TextureImporterType.Default, TextureWrapMode.Clamp);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |