From 5b158af90739dcbb89c1538a6cb8c65a875dce80 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 26 Nov 2020 20:52:34 +0800 Subject: *misc --- .../Editor/StyledMaterial/StyledMessageDrawer.cs | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledMessageDrawer.cs (limited to 'Assets/BOXOPHOBIC/Utils/Editor/StyledMaterial/StyledMessageDrawer.cs') 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; + } + } +} -- cgit v1.1-26-g67d0