From 21e186f75b504d832d9c7bef0456edd7d5d3155e Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 8 Sep 2021 10:52:35 +0800 Subject: +behavior design --- .../Editor/StyledMaterial/StyledToggleDrawer.cs | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Assets/Art/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledToggleDrawer.cs (limited to 'Assets/Art/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledToggleDrawer.cs') diff --git a/Assets/Art/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledToggleDrawer.cs b/Assets/Art/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledToggleDrawer.cs new file mode 100644 index 00000000..79fb4543 --- /dev/null +++ b/Assets/Art/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledToggleDrawer.cs @@ -0,0 +1,80 @@ +// Cristian Pop - https://boxophobic.com/ + +using UnityEngine; +using UnityEditor; +using System; + +namespace Boxophobic.StyledGUI +{ + public class StyledToggleDrawer : MaterialPropertyDrawer + { + public float width = 0; + + public StyledToggleDrawer() + { + + } + + public StyledToggleDrawer(float width) + { + this.width = width; + } + + public override void OnGUI(Rect position, MaterialProperty prop, String label, MaterialEditor materialEditor) + { + Material material = materialEditor.target as Material; + + if (width == 0) + { + bool toggle = false; + + if (prop.floatValue > 0.5f) + { + toggle = true; + } + + toggle = EditorGUILayout.Toggle(label, toggle); + + if (toggle) + { + prop.floatValue = 1; + } + else + { + prop.floatValue = 0; + } + } + else + { + GUILayout.BeginHorizontal(); + + GUILayout.Label(label); + + bool toggle = false; + + if (prop.floatValue > 0.5f) + { + toggle = true; + } + + toggle = GUILayout.Toggle(toggle, "", GUILayout.Width(width)); + + if (toggle) + { + prop.floatValue = 1; + } + else + { + prop.floatValue = 0; + } + + GUILayout.EndHorizontal(); + } + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + return -2; + } + } +} -- cgit v1.1-26-g67d0