From 79e95c1ced341d0b7db7c2fb3a5c6c2ce623a265 Mon Sep 17 00:00:00 2001 From: yum Date: Sun, 23 Jun 2024 13:50:19 -0700 Subject: Add gimmicks folder Catch-all bag for some nascent research. Zero cost if unused. Also organize all shader-side keywords into a single .cginc. --- Editor/tooner.cs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'Editor') diff --git a/Editor/tooner.cs b/Editor/tooner.cs index 71e7271..d806f88 100644 --- a/Editor/tooner.cs +++ b/Editor/tooner.cs @@ -684,6 +684,36 @@ public class ToonerGUI : ShaderGUI { } } + void DoGimmicks() { + MaterialProperty bc; + bc = FindProperty("_Gimmick_Flat_Color_Enable_Static"); + bool enabled = (bc.floatValue != 0.0); + EditorGUI.BeginChangeCheck(); + enabled = EditorGUILayout.Toggle("Flat color", enabled); + EditorGUI.EndChangeCheck(); + bc.floatValue = enabled ? 1.0f : 0.0f; + SetKeyword("_GIMMICK_FLAT_COLOR", enabled); + + if (!enabled) { + return; + } + + EditorGUI.indentLevel += 1; + EditorGUI.indentLevel -= 1; + + bc = FindProperty("_Gimmick_Flat_Color_Enable_Dynamic"); + enabled = (bc.floatValue != 0.0); + EditorGUI.BeginChangeCheck(); + enabled = EditorGUILayout.Toggle("Enable (runtime switch)", enabled); + EditorGUI.EndChangeCheck(); + bc.floatValue = enabled ? 1.0f : 0.0f; + + bc = FindProperty("_Gimmick_Flat_Color_Color"); + editor.ColorProperty(bc, "Color"); + bc = FindProperty("_Gimmick_Flat_Color_Emission"); + editor.ColorProperty(bc, "Emission"); + } + enum RenderingMode { Opaque, Cutout, @@ -938,6 +968,11 @@ public class ToonerGUI : ShaderGUI { DoClones(); EditorGUI.indentLevel -= 1; + GUILayout.Label("Gimmicks", EditorStyles.boldLabel); + EditorGUI.indentLevel += 1; + DoGimmicks(); + EditorGUI.indentLevel -= 1; + GUILayout.Label("Rendering", EditorStyles.boldLabel); EditorGUI.indentLevel += 1; DoRendering(); -- cgit v1.2.3