[Add] All in one shader
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user