| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // This DOES go in the Editor folder (UnityEditor)
- using System;
- using UnityEditor;
- using UnityEngine;
- [CustomPropertyDrawer(typeof(FriendlyName))]
- public class PropertyTooltipDrawer : PropertyDrawer
- {
- private string GetDisplay(SerializedProperty property, FriendlyName attr, GUIContent label )
- {
- if( attr.friendlyName == null || attr.friendlyName.Length <= 0 )
- {
- return label.text;
- }
- return attr.friendlyName;
- }
- public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
- {
- FriendlyName friendlyNameAttr = attribute as FriendlyName;
- if (property.propertyType == SerializedPropertyType.AnimationCurve)
- {
- property.animationCurveValue = EditorGUI.CurveField(position, new GUIContent(GetDisplay(property, friendlyNameAttr, label)), property.animationCurveValue);
- }
- else if (property.propertyType == SerializedPropertyType.Boolean)
- {
- property.boolValue = EditorGUI.Toggle(position, new GUIContent(GetDisplay(property, friendlyNameAttr, label)), property.boolValue);
- }
- else if (property.propertyType == SerializedPropertyType.Bounds)
- {
- property.boundsValue = EditorGUI.BoundsField(position, new GUIContent(GetDisplay(property, friendlyNameAttr, label)), property.boundsValue);
- }
- else if (property.propertyType == SerializedPropertyType.Color)
- {
- property.colorValue = EditorGUI.ColorField(position, new GUIContent(GetDisplay(property, friendlyNameAttr, label)),
- property.colorValue);
- }
- else if (property.propertyType == SerializedPropertyType.Float)
- {
- property.floatValue = EditorGUI.FloatField(position,
- new GUIContent(GetDisplay(property, friendlyNameAttr, label)), property.floatValue);
- }
- else if (property.propertyType == SerializedPropertyType.Integer)
- {
- property.intValue = EditorGUI.IntField(position, new GUIContent(GetDisplay(property, friendlyNameAttr, label)), property.intValue);
- }
- else if (property.propertyType == SerializedPropertyType.Rect)
- {
- property.rectValue = EditorGUI.RectField(position, new GUIContent(GetDisplay(property, friendlyNameAttr, label)),
- property.rectValue);
- }
- else if (property.propertyType == SerializedPropertyType.String)
- {
- property.stringValue = EditorGUI.TextField(position,
- new GUIContent(GetDisplay(property, friendlyNameAttr, label)), property.stringValue);
- }
- else if( property.propertyType == SerializedPropertyType.Vector2 )
- {
- property.vector2Value = EditorGUI.Vector2Field(position,
- new GUIContent(GetDisplay(property, friendlyNameAttr, label)), property.vector2Value);
- }
- else if (property.propertyType == SerializedPropertyType.Vector3)
- {
- property.vector3Value = EditorGUI.Vector3Field(position,
- new GUIContent(GetDisplay(property, friendlyNameAttr, label)), property.vector3Value);
- }
- else if (property.propertyType == SerializedPropertyType.Vector4)
- {
- property.vector4Value = EditorGUI.Vector4Field(position,
- GetDisplay(property, friendlyNameAttr, label), property.vector4Value);
- }
- }
- }
|