以下のコードを 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"; }