From 5b158af90739dcbb89c1538a6cb8c65a875dce80 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 26 Nov 2020 20:52:34 +0800 Subject: *misc --- .../StyledMaterial/StyledInteractiveDrawer.cs | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledInteractiveDrawer.cs (limited to 'Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledInteractiveDrawer.cs') diff --git a/Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledInteractiveDrawer.cs b/Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledInteractiveDrawer.cs new file mode 100644 index 00000000..3f321cbe --- /dev/null +++ b/Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledInteractiveDrawer.cs @@ -0,0 +1,92 @@ +// Cristian Pop - https://boxophobic.com/ + +using UnityEngine; +using UnityEditor; +using System; + +namespace Boxophobic.StyledGUI +{ + public class StyledInteractiveDrawer : MaterialPropertyDrawer + { + public string keyword; + public float value1 = -1f; + public float value2 = -1f; + public float value3 = -1f; + + protected int type; + + public StyledInteractiveDrawer(string k) + { + type = 0; + keyword = k; + } + + public StyledInteractiveDrawer(string k, float v1) + { + type = 1; + keyword = k; + value1 = v1; + } + + public StyledInteractiveDrawer(string k, float v1, float v2) + { + type = 1; + keyword = k; + value1 = v1; + value2 = v2; + } + + public StyledInteractiveDrawer(string k, float v1, float v2, float v3) + { + type = 1; + keyword = k; + value1 = v1; + value2 = v2; + value3 = v3; + } + + public override void OnGUI(Rect position, MaterialProperty prop, String label, MaterialEditor materialEditor) + { + Material material = materialEditor.target as Material; + + if (type == 1) + { + if (material.HasProperty(keyword)) + { + if (value1 == material.GetFloat(keyword) || value2 == material.GetFloat(keyword) || value3 == material.GetFloat(keyword)) + { + GUI.enabled = true; + } + else + { + GUI.enabled = false; + } + } + } + else if (type == 0) + { + if (keyword == "ON") + { + GUI.enabled = true; + } + else if (keyword == "OFF") + { + GUI.enabled = false; + } + else if (material.IsKeywordEnabled(keyword)) + { + GUI.enabled = true; + } + else + { + GUI.enabled = false; + } + } + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + return -2; + } + } +} \ No newline at end of file -- cgit v1.1-26-g67d0