How should we extend/adjust the default asset importer editors?

When working on my projects, I like to give myself utility buttons and extra information about the asset I’m working with. I’d love to be able to do that with the assets unity imports for me - such as the FBX importer.

Sadly, the FBX importer editor is internal, so I cannot extend it, nor can I use any of its code to make my own - I essentially have to either resort to heavy hacks, or reinvent the wheel.

As an example, imagine something as simple as showing a simple outlined area of “This model is not set up like the rest of your project” with buttons to “set import settings as animation” (disabling material import, adjusting other settings) “set import settings as model” (dont import animations), “fix unit scale” (adjust the checkboxes / scale factors).

In a previous thread , I’ve listed a few of the potential hacks, such as:

  • Making my own editor window which checks the selected asset to show me extra information and buttons for it. Sadly this means its far removed from where the original window is, and always has to be docked. Uncomfortable.

  • Make the entire set of classes that compose the FBX model importer from scratch, so it can be adjusted however way I wish. Sadly a lot of internal code is involved. Uncomfortable. One big problem there is the preview classes themselves are internal, so they too have to be redone.

  • Make use of Editor.finishedDefaultHeaderGUI to add buttons to the top of the default importer editor windows, like Addressables does. It clutters the top and not as intuitive. Cannot be placed in the location that would be most relevant within the importer itself.

  • Making a companion asset with its own editor, that targets the original one, and affects its import process. This can clutter a project quickly as now every asset you want to have a fancier visual & quality of life buttons for, becomes two assets at minimum.

  • Wrapping the default editor with reflection. Sadly this does not even remotely work. I’ve opened a bug ticket for this but it seems this was slated as ‘wont fix’.

  • Adding labels that adjust the import process, with potentially automatic detection for which labels should be used based on asset name. However, this forces a rigid asset naming convention, tribal knowledge of which labels help do what (since there is no easy way to make adding those either) and at the end of the day still takes more work for the end user than just clicking an editor button with a clean prompt to do so.

However, no matter which solution I try going with, every path is full of concessions.

How should we extend or adjust the default asset importer editors, then, please?

Apart from all these workarounds, which each have their own upside and downside, there is no proper way to do that in Unity at the moment.
But it has been noted that the AssetImporterEditor needs improvement and a proper way to let users do overrides and extensions on existing inspectors, and is considered for every plan we’re making to improve the importers’ area.

If you are facing the same need, take a look at this asset, maybe it will help you.
Extended Import Settings: Model

I use this tool for overriding internal editors
and have used it for overriding TextureImportEditor in past

OverrideInternalEditorTypeMarkAttribute.cs (1.4 KB)
RendererEditor.cs (1.7 KB)
SkinnedMeshRendererEditor.cs (288 Bytes)
OverrideInternalEditor.cs (3.0 KB)