Net.Like.Xue.Tokyo/Assets/Plugins/Character Controller Pro/Utilities/Scripts/BreakVector3AttributeEditor.cs

40 lines
1.2 KiB
C#

#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
namespace Lightbug.Utilities
{
[CustomPropertyDrawer(typeof(BreakVector3Attribute))]
public class BreakVector3AttributeEditor : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
Rect fieldRect = position;
fieldRect.height = EditorGUIUtility.singleLineHeight;
var at = attribute as BreakVector3Attribute;
float x = EditorGUI.FloatField(fieldRect, at.XLabel, property.vector3Value.x);
fieldRect.y += fieldRect.height + 2f;
float y = EditorGUI.FloatField(fieldRect, at.YLabel, property.vector3Value.y);
fieldRect.y += fieldRect.height + 2f;
float z = EditorGUI.FloatField(fieldRect, at.ZLabel, property.vector3Value.z);
property.vector3Value = new Vector3(x, y, z);
EditorGUI.EndProperty();
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
return 3f * (EditorGUIUtility.singleLineHeight + 2f);
}
}
}
#endif