Version: 2020.2
public void AddRemap (AssetImporter.SourceAssetIdentifier identifier, Object externalObject);

参数

identifier 子资源的标识符。
externalObject 要映射到内部对象的对象。可以属于另一个预制件或资源,但不能属于正在更改的资源。

描述

将子资源从导入的资源(例如 FBX 文件)映射到同类型的外部资源。

通过写入元数据并重新导入资源来应用更改。重新导入资源后,资源的实例会自动使用映射的对象。

如果外部资源的类型与子资源的类型不匹配,或者引用为 null,则资源的实例将继续使用内部资源,而不会产生错误。

using UnityEngine;
using UnityEditor;

public class Extractor { public static void ExtractFromAsset(Object subAsset, string destinationPath) { string assetPath = AssetDatabase.GetAssetPath(subAsset);

var clone = Object.Instantiate(subAsset); AssetDatabase.CreateAsset(clone, destinationPath);

var assetImporter = AssetImporter.GetAtPath(assetPath); assetImporter.AddRemap(new AssetImporter.SourceAssetIdentifier(subAsset), clone);

AssetDatabase.WriteImportSettingsIfDirty(assetPath); AssetDatabase.ImportAsset(assetPath, ImportAssetOptions.ForceUpdate); } }

另请参阅:AssetImporter.RemoveRemap