Undo.RegisterImporterUndo

Switch to Manual
public static void RegisterImporterUndo (string path, string name);

Parameters

pathPath of the asset importer to register for Undo.
nameThe name of the undo operation.

Description

Copies the state of the importer for the given asset path.

This method is used to Undo a AssetDatabaseExperimental.SetImporterOverride operation.

using UnityEditor;
using UnityEngine;
using UnityEditor.AssetImporters;
using UnityEditor.Experimental;

[ScriptedImporter(1, null, new[] {"fbx"})] class MyFBXImporter : ScriptedImporter { public override void OnImportAsset(AssetImportContext ctx) { var go = new GameObject("root"); ctx.AddObjectToAsset("root", go); ctx.SetMainObject(go); } }

class ChangeImporterOverrideWithUndo { [MenuItem("Assets/Change Importer To MyFBXImporter With Undo")] static void ChangeImporterWithUndo() { var assetPath = AssetDatabase.GetAssetPath(Selection.activeObject); Undo.RegisterImporterUndo(assetPath, "Changed Importer"); AssetDatabaseExperimental.SetImporterOverride<MyFBXImporter>(assetPath); } }