identifier | 子资源的标识符。 |
externalObject | 要映射到内部对象的物体。可以属于另一个预制件或资源,但不能是正在更改的资源。 |
将导入资源(例如 FBX 文件)中的子资源映射到相同类型的外部资源。
通过写入元数据并重新导入资源来应用更改。一旦您重新导入资源,资源的实例就会自动使用映射的对象。
如果外部资源的类型与子资源的类型不匹配,或者如果引用为空,则资源的实例将继续使用内部资源,而不会产生错误。
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); } }