Skip to content

Instantly share code, notes, and snippets.

@arif-pandu
Created December 5, 2023 14:18
Show Gist options
  • Save arif-pandu/2bb0cb149072709b1265c90083247354 to your computer and use it in GitHub Desktop.
Save arif-pandu/2bb0cb149072709b1265c90083247354 to your computer and use it in GitHub Desktop.
## Put this file OUTSIDE Editor folder
using UnityEngine;
public class ReadOnlyAttribute : PropertyAttribute { }
## Put this file INSIDE Editor folder
#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
[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;
}
}
#endif
@arif-pandu
Copy link
Author

Example usage by adding [ReadOnly]


public class YourScript : MonoBehaviour
{
    [ReadOnly]
    [SerializeField]
    private int yourVariable;

    // Rest of your code
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment