unity-atoms/Packages/Core/Editor/Drawers/ReadOnlyDrawer.cs

27 lines
963 B
C#
Raw Normal View History

2020-03-01 15:32:52 -05:00
using UnityEngine;
using UnityEditor;
namespace UnityAtoms.Editor
{
/// <summary>
/// Make property read only by using the abbtribute `[ReadOnly]`. Solution taken from: https://answers.unity.com/questions/489942/how-to-make-a-readonly-property-in-inspector.html
/// </summary>
[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]
public class ReadOnlyDrawer : PropertyDrawer
{
public override float GetPropertyHeight(SerializedProperty property,
GUIContent label)
{
return EditorGUI.GetPropertyHeight(property, label, true);
}
public override void OnGUI(Rect position,
SerializedProperty property,
GUIContent label)
{
GUI.enabled = false;
EditorGUI.PropertyField(position, property, label, true);
GUI.enabled = true;
}
}
}