Multiple Enum Inspector

This is how I handled this for my case (there’s more in this example than you need)

mixedGUI(_target.hasMultipleDifferentValues, () => {
  var newVal = drawDropDownSelector(rect, clamp(val, _records.Length), usesTooltips);
  if(val != newVal) _target.stringValue = _records[newVal].name;
})

void mixedGUI(bool condition, Action action) {
  var saved = EditorGUI.showMixedValue;
  EditorGUI.showMixedValue = condition;
  action.Invoke();
  EditorGUI.showMixedValue = saved;
}

int drawDropDownSelector(Rect rect, int selected, bool usesTooltips)
  => EditorGUI.Popup(rect, GUIContent.none, selected, _cached??= extractGUIContentColumn(usesTooltips));

You can exactly how this works if you grab the code from here . It’s made for enums specifically.