79 lines
3.1 KiB
C#
79 lines
3.1 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System;
|
|
|
|
namespace CubedsUnityShaders
|
|
{
|
|
public class FlatLitToonLiteInspector : ShaderGUI
|
|
{
|
|
public enum CullingMode
|
|
{
|
|
Off,
|
|
Front,
|
|
Back
|
|
}
|
|
|
|
MaterialProperty mainTexture;
|
|
MaterialProperty color;
|
|
MaterialProperty colorMask;
|
|
MaterialProperty shadow;
|
|
MaterialProperty emissionMap;
|
|
MaterialProperty emissionColor;
|
|
MaterialProperty normalMap;
|
|
MaterialProperty cullingMode;
|
|
|
|
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
|
|
{
|
|
{ //Find Properties
|
|
mainTexture = FindProperty("_MainTex", properties);
|
|
color = FindProperty("_Color", properties);
|
|
colorMask = FindProperty("_ColorMask", properties);
|
|
shadow = FindProperty("_Shadow", properties);
|
|
emissionMap = FindProperty("_EmissionMap", properties);
|
|
emissionColor = FindProperty("_EmissionColor", properties);
|
|
normalMap = FindProperty("_BumpMap", properties);
|
|
cullingMode = FindProperty("_Cull", properties);
|
|
}
|
|
|
|
//Shader Properties GUI
|
|
EditorGUIUtility.labelWidth = 0f;
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
{
|
|
EditorGUI.showMixedValue = cullingMode.hasMixedValue;
|
|
var cMode = (CullingMode)cullingMode.floatValue;
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
cMode = (CullingMode)EditorGUILayout.Popup("Culling Mode", (int)cMode, Enum.GetNames(typeof(CullingMode)));
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
materialEditor.RegisterPropertyChangeUndo("Rendering Mode");
|
|
cullingMode.floatValue = (float)cMode;
|
|
}
|
|
EditorGUI.showMixedValue = false;
|
|
EditorGUILayout.Space();
|
|
|
|
materialEditor.TexturePropertySingleLine(new GUIContent("Main Texture", "Main Color Texture (RGB)"), mainTexture, color);
|
|
EditorGUI.indentLevel += 1;
|
|
materialEditor.TexturePropertySingleLine(new GUIContent("Color Mask", "Masks Color Tinting (G)"), colorMask);
|
|
EditorGUI.indentLevel -= 1;
|
|
|
|
materialEditor.TexturePropertySingleLine(new GUIContent("Normal Map", "Normal Map (RGB)"), normalMap);
|
|
materialEditor.TexturePropertySingleLine(new GUIContent("Emission", "Emission (RGB)"), emissionMap, emissionColor);
|
|
EditorGUI.BeginChangeCheck();
|
|
materialEditor.TextureScaleOffsetProperty(mainTexture);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
emissionMap.textureScaleAndOffset = mainTexture.textureScaleAndOffset;
|
|
}
|
|
|
|
EditorGUILayout.Space();
|
|
materialEditor.ShaderProperty(shadow, "Shadow");
|
|
}
|
|
EditorGUI.EndChangeCheck();
|
|
|
|
}
|
|
}
|
|
} |