Odin has a dedicated attribute overview with examples

HideReferenceObjectPickerAttribute class

Namespace: Sirenix.OdinInspector
Assembly: Sirenix.OdinInspector.Attributes
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Interface, AllowMultiple = false, Inherited = true)]
public class HideReferenceObjectPickerAttribute : Attribute, _Attribute
Hides the polymorphic object-picker shown above the properties of non-Unity serialized reference types.
  • System.Object
  • System.Attribute
  • HideReferenceObjectPickerAttribute

When the object picker is hidden, you can right click and set the instance to null, in order to set a new value. If you don't want this behavior, you can use attribute to ensure people can't change the value.

public class MyComponent : SerializedMonoBehaviour
    [Header("Hidden Object Pickers")]
    public MyCustomReferenceType OdinSerializedProperty1;

    public MyCustomReferenceType OdinSerializedProperty2;

    [Header("Shown Object Pickers")]
    public MyCustomReferenceType OdinSerializedProperty3;

    public MyCustomReferenceType OdinSerializedProperty4;

    public class MyCustomReferenceType
        public int A;
        public int B;
        public int C;


public HideReferenceObjectPickerAttribute()