solution based on few things:
- You write CustomEditor(AssetImporter)
- create copy of existing builtin Editor, and draw its OnInspectorGUI
- then draw your things
- for persistance use plain class saved with JsonUtility to AssetImporter.userData (string)
- call AssetImporter.SaveAndReimport to apply settings
here is base for overriding any builtin Inspector: GitHub | CustomOverrideEditor
It’s may be tricky to handle all original inspector job, (for example with models I’ve disappearing Apply/Revert buttons) but having decompiled code access I’ve successfuly draw everything
In your custom fields you also have to handle mixed values by yourself, cause you have no shared SerializedObject. You can create scriptableObject for each userData, but it may be realy slow when selecting many assets
Example, model Importer field with enum value: GitHub Gist | Source code