diff options
Diffstat (limited to 'Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledMessageDrawer.cs')
-rw-r--r-- | Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledMessageDrawer.cs | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledMessageDrawer.cs b/Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledMessageDrawer.cs new file mode 100644 index 00000000..de9414a4 --- /dev/null +++ b/Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledMessageDrawer.cs @@ -0,0 +1,90 @@ +// Cristian Pop - https://boxophobic.com/
+
+using UnityEngine;
+using UnityEditor;
+using System;
+
+namespace Boxophobic.StyledGUI
+{
+ public class StyledMessageDrawer : MaterialPropertyDrawer
+ {
+ public string type;
+ public string message;
+ public string keyword;
+ public float value;
+ public float top;
+ public float down;
+
+ MessageType mType;
+
+ public StyledMessageDrawer(string t, string m, float top, float down)
+ {
+ type = t;
+ message = m;
+ keyword = null;
+
+ this.top = top;
+ this.down = down;
+ }
+
+ public StyledMessageDrawer(string t, string m, string k, float v, float top, float down)
+ {
+ type = t;
+ message = m;
+ keyword = k;
+ value = v;
+
+ this.top = top;
+ this.down = down;
+ }
+
+ public override void OnGUI(Rect position, MaterialProperty prop, String label, MaterialEditor materialEditor)
+ {
+ Material material = materialEditor.target as Material;
+
+ if (type == "None")
+ {
+ mType = MessageType.None;
+ }
+ else if (type == "Info")
+ {
+ mType = MessageType.Info;
+ }
+ else if (type == "Warning")
+ {
+ mType = MessageType.Warning;
+ }
+ else if (type == "Error")
+ {
+ mType = MessageType.Error;
+ }
+
+ if (keyword != null)
+ {
+ if (material.HasProperty(keyword))
+ {
+ if (material.GetFloat(keyword) == value)
+ {
+ GUILayout.Space(top);
+ //EditorGUI.DrawRect(new Rect(position.x, position.y + Top, position.width, position.height), new Color(1,0,0,0.3f));
+ EditorGUILayout.HelpBox(message, mType);
+ //EditorGUI.HelpBox(new Rect(position.x, position.y + top, position.width, position.height), message, mType);
+ GUILayout.Space(down);
+
+ }
+ }
+ }
+ else
+ {
+ GUILayout.Space(top);
+ EditorGUILayout.HelpBox(message, mType);
+ GUILayout.Space(down);
+ }
+ }
+
+ public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor)
+ {
+ return -2;
+ }
+ }
+}
|