mixedcards/Assets/AllIn1SpriteShader/Editor/AllIn1ShaderScriptEditor.cs
2020-09-24 23:30:44 -04:00

88 lines
No EOL
2.6 KiB
C#

using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(AllIn1Shader)), CanEditMultipleObjects]
public class AllIn1ShaderScriptEditor : Editor
{
public override void OnInspectorGUI()
{
Texture2D imageInspector = (Texture2D)AssetDatabase.LoadAssetAtPath("Assets/AllIn1SpriteShader/Textures/CustomEditorImage.png", typeof(Texture2D));
if (imageInspector)
{
Rect rect;
float imageHeight = imageInspector.height;
float imageWidth = imageInspector.width;
float aspectRatio = imageHeight / imageWidth;
rect = GUILayoutUtility.GetRect(imageHeight, aspectRatio * Screen.width);
EditorGUI.DrawTextureTransparent(rect, imageInspector);
}
AllIn1Shader myScript = (AllIn1Shader)target;
if (GUILayout.Button("Deactivate All Effects"))
{
for (int i = 0; i < targets.Length; i++)
{
(targets[i] as AllIn1Shader).ClearAllKeywords();
}
}
if (GUILayout.Button("New Clean Material"))
{
for (int i = 0; i < targets.Length; i++)
{
(targets[i] as AllIn1Shader).TryCreateNew();
}
}
if (GUILayout.Button("Create New Material With Same Properties (SEE DOC)"))
{
for (int i = 0; i < targets.Length; i++)
{
(targets[i] as AllIn1Shader).MakeCopy();
}
}
if (GUILayout.Button("Save Material To Folder (SEE DOC)"))
{
for (int i = 0; i < targets.Length; i++)
{
(targets[i] as AllIn1Shader).SaveMaterial();
}
}
EditorGUILayout.Space();
if (GUILayout.Button("Sprite Atlas Auto Setup"))
{
for (int i = 0; i < targets.Length; i++)
{
(targets[i] as AllIn1Shader).ToggleSetAtlasUvs(true);
}
}
if (GUILayout.Button("Remove Sprite Atlas Configuration"))
{
for (int i = 0; i < targets.Length; i++)
{
(targets[i] as AllIn1Shader).ToggleSetAtlasUvs(false);
}
}
EditorGUILayout.Space();
if (GUILayout.Button("REMOVE COMPONENT AND MATERIAL"))
{
for (int i = 0; i < targets.Length; i++)
{
(targets[i] as AllIn1Shader).CleanMaterial();
}
for (int i = targets.Length - 1; i >= 0; i--)
{
DestroyImmediate(targets[i] as AllIn1Shader);
}
}
}
}