Danro/Assets/Scripts/Utilities/ReadOnlyInInspectorAttribute.cs

27 lines
715 B
C#

using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace RR.Common.Utilities
{
public class ReadOnlyInInspectorAttribute : PropertyAttribute { }
#if UNITY_EDITOR
[CustomPropertyDrawer(typeof(ReadOnlyInInspectorAttribute))]
public class ReadOnlyDrawer : PropertyDrawer
{
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
=> 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;
}
}
#endif
}