以下のコードを Assets/ 以下に配置します。
Editor/ 以下には配置しないでください。(エラーになります)
DisabledAttribute.cs
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
// usage: [Disabled]
public class DisabledAttribute : PropertyAttribute {}
#if UNITY_EDITOR
[CustomPropertyDrawer(typeof(DisabledAttribute))]
public class DisabledAttributeDrawer : 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;
}
}
#endif
使い方
using UnityEngine;
public class Test : MonoBehaviour
{
[SerializeField]
string enabledString = "Bon Jovi";
[SerializeField, Disabled]
string disabledString = "Slippery When Wet";
}




