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

AssetImporter.AddRemap

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法采纳所有提交内容,但我们确实会阅读用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

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

关闭

取消

声明

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

参数

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

其他资源:AssetImporter.RemoveRemap