using UnityEngine; using UnityEditor; using System.Collections; using System.Collections.Generic; [CustomPropertyDrawer(typeof(InspectorNoteAttribute))] public class DrawerInspectorNote : DecoratorDrawer { public override void OnGUI( Rect position ) { InspectorNoteAttribute note = attribute as InspectorNoteAttribute; // our header is always present Rect posLabel = position; posLabel.y += 13; posLabel.x -= 2; posLabel.height += 13; EditorGUI.LabelField(posLabel, note.header, EditorStyles.whiteLargeLabel); // do we have a message too? if (!string.IsNullOrEmpty(note.message)) { Color color = GUI.color; Color faded = color; faded.a = 0.6f; Rect posExplain = posLabel; posExplain.y += 15; GUI.color = faded; EditorGUI.LabelField(posExplain, note.message, EditorStyles.whiteMiniLabel); GUI.color = color; } Rect posLine = position; posLine.y += string.IsNullOrEmpty(note.message) ? 30 : 42; posLine.height = 1f; GUI.Box(posLine, ""); } public override float GetHeight() { InspectorNoteAttribute note = attribute as InspectorNoteAttribute; return string.IsNullOrEmpty( note.message ) ? 38 : 50; } } [CustomPropertyDrawer( typeof( InspectorCommentAttribute ) )] public class DrawerInspectorComment : DecoratorDrawer { public override void OnGUI( Rect position ) { InspectorCommentAttribute comment = attribute as InspectorCommentAttribute; // our header is always present Rect posLabel = position; //posLabel.y += 13; //posLabel.x -= 2; //posLabel.height += 13; //EditorGUI.LabelField( posLabel, comment.header, EditorStyles.whiteLargeLabel ); // do we have a message too? if ( !string.IsNullOrEmpty( comment.message ) ) { Color color = GUI.color; Color faded = color; faded.a = 0.6f; Rect posExplain = posLabel; posExplain.y += 15; GUI.color = faded; EditorGUI.LabelField( posExplain, comment.message, EditorStyles.whiteMiniLabel ); GUI.color = color; } } public override float GetHeight() { InspectorNoteAttribute note = attribute as InspectorNoteAttribute; return string.IsNullOrEmpty( note.message ) ? 38 : 50; } }