diff options
Diffstat (limited to 'Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledInteractiveDrawer.cs')
-rw-r--r-- | Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledInteractiveDrawer.cs | 92 |
1 files changed, 92 insertions, 0 deletions
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 |