How could I make the array size readonly in inspector in Unity with a custom attribute? Here is my `ReadOnly` attribute: using game_editor.drawers; using UnityEditor; using UnityEngine; namespace editor.drawers { [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; } } } ``` using UnityEngine; namespace game_editor.drawers { public class ReadOnlyAttribute : PropertyAttribute { } } ``` Here is how I use it: public class MainObject : MonoBehaviour { [ReadOnly] [SerializeField] GameObject[] prefabs; } The problem right now is that I still can edit my array size (the `MainObject.prefabs` array in this case) in editor. How could I modify my `ReadOnlyDrawer` to prevent that? I do not know the array length beforehand. So, the `OnValidate` solution like this one: private const int SIZE = 5; public int[] ints = new int[SIZE]; void OnValidate() { if (ints.Length != SIZE) { Debug.LogWarning("Don't change the 'ints' field's array size!"); Array.Resize(ref ints, SIZE); } } ([source](https://answers.unity.com/questions/38943/public-fixed-size-array-in-inspector.html)) won't work in my case. Also, I want to use this attribute thorughout my project in different places. So, I do not want to create a custom inspector, I just want to utilize the drawing attribute.