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); } }