版本:Unity 6 (6000.0)
语言中文(简体)
  • C#

AssetImporters.ScriptedImporter.GatherDependenciesFromSourceFile(string)

建议修改

成功!

感谢您帮助我们提高 Unity 文档质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每一条修改建议,并在适用情况下进行更新。

关闭

提交失败

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

关闭

取消

参数

path 此方法当前正在处理的资源的路径。

返回

void 包含对此方法当前正在处理的资源的资产要创建依赖关系的路径的字符串数组。

说明

您可实现的静态回调,用于设置对其他资产的项目依赖关系并优化资产的导入顺序。

如果您在一个继承 ScriptedImporter 的类中实现此方法,那么此方法将在导入开始前,对配置为由 your 类导入的所有资产进行调用。

随后,您的 ScriptedImporter 类可返回一个路径数组,这些路径指向其他资产,并且当前处理的资产的导入结果取决于此数组中资产的导入结果(可能取决于 ScriptedImporter 如何解释其正在导入的文件的内容)。

Unity 使用您从该方法返回的信息以最有效率的顺序导入资产,从而避免在可能的情况下多次重新导入资产。

注意:在导入过程中,每种类型的导入器都有特定的优先级。如果您指定属于其他导入优先级的资产依赖关系,则它不会覆盖导入优先级,因此还是会出现重复导入。

有关项目依赖关系的详细信息,请查看 AssetImportContext.DependsOnArtifact。对于使用 GatherDependenciesFromSourceFile 报告的依赖关系,无需使用 AssetImportContext.DependsOnArtifact 再次报告它们。但是,在实际导入期间可发现更多项目依赖关系,然后添加它们有效。

注意
在您的实现的这个方法中或您从实现调用的任何方法中,您不能调用以下任何 API

AssetDatabase.CreateAsset

AssetDatabase.LoadAllAssetRepresentationsAtPath

AssetDatabase.LoadAllAssetsAtPath

AssetDatabase.LoadAssetAtPath

AssetDatabase.LoadMainAssetAtPath

如果您从对该方法的实现调用上述任何方法,Unity 会引发异常。

using UnityEditor.AssetImporters;

[ScriptedImporter(1, "my_asset_type", AllowCaching = true)] class MyAssetImporter : ScriptedImporter { static string[] GatherDependenciesFromSourceFile(string path) { // Called before actual import for each changed asset that is imported by this importer type (assets having "my_asset_type" file extension in this example) // Extract the dependencies for the asset specified in path. // For asset dependencies that are discovered, return them in the string array, where the string is the path to asset }

public override void OnImportAsset(AssetImportContext ctx) { // There is no need to call ctx.DependsOnArtfact for the dependencies reported in GatherDependenciesFromSourceFile. } }