版本:Unity 6 (6000.0)
语言英语
  • C#

Undo.RegisterImporterUndo

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个更改建议,并将根据需要进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请 <a>重试</a> 几分钟后。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static void RegisterImporterUndo(string path, string name);

参数

path 要注册撤销操作的资源导入器的路径。
name 撤销操作的名称。

描述

复制给定资源路径的导入器的状态。

此方法用于撤销 AssetDatabase.SetImporterOverride 操作。

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"); AssetDatabase.SetImporterOverride<MyFBXImporter>(assetPath); } }