forked from Shardstone/trail-into-darkness
added more utilty packges
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace InspectorToolkit {
|
||||
public class LinkAttribute : PropertyAttribute {
|
||||
|
||||
public readonly string message;
|
||||
public readonly string url;
|
||||
|
||||
public LinkAttribute(string message, string url) {
|
||||
this.message = message;
|
||||
this.url = url;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
namespace InspectorToolkit.Internal {
|
||||
|
||||
[CustomPropertyDrawer(typeof(LinkAttribute))]
|
||||
public class LinkAttributeDrawer : PropertyDrawer {
|
||||
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) {
|
||||
return base.GetPropertyHeight(property, label) + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
|
||||
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) {
|
||||
|
||||
//If you don't capture these and recreate below, GUIContent label becomes replaces with LinkButtons GUIContent
|
||||
string labelText = label.text;
|
||||
string labelTooltip = label.tooltip;
|
||||
|
||||
string message = ((LinkAttribute)attribute).message;
|
||||
string url = ((LinkAttribute)attribute).url;
|
||||
|
||||
var linkPosition = new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight);
|
||||
|
||||
if(EditorGUI.LinkButton(linkPosition, message)) {
|
||||
Application.OpenURL(url);
|
||||
}
|
||||
|
||||
var fieldPosition = new Rect(position.x, position.y + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing, position.width, EditorGUIUtility.singleLineHeight);
|
||||
|
||||
EditorGUI.PropertyField(fieldPosition, property, new GUIContent(labelText,labelTooltip));
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user