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

CollectImportedDependenciesAttribute

UnityEditor.AssetImporters 中的类

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

描述

使用此方法属性指定哪些方法声明对导入资产的依赖关系。这些方法在导入期间由 AssetDatabase 调用。

AssetDatabase 在导入依赖资产之前导入具有此属性的方法中声明的依赖关系。这也将在依赖资产更改时重新导入依赖资产。使用此声明的依赖关系可以在 AssetPostprocessor 回调中安全地加载依赖关系。

此示例演示了如何声明由 ModelImporter 导入的两个预制件之间的依赖关系,并在 AssetPostprocessor 中使用它们。

using UnityEditor;
using UnityEditor.AssetImporters;
using UnityEngine;

public class ProceduralParentPostprocessor : AssetPostprocessor { private const string s_DependentPath = "Assets/ProceduralPrefab.fbx"; private const string s_DependencyPath = "Assets/DependencyPrefab.fbx";

[CollectImportedDependencies(typeof(ModelImporter), 1)] public static string[] CollectImportedDependenciesForModelImporter(string assetPath) { if (assetPath.Equals(s_DependentPath)) return new[] { s_DependencyPath };

return null; }

void OnPostprocessMeshHierarchy(GameObject root) { if (root.name == "ProceduralPrefabRoot") { // Add a new child game object var go = AssetDatabase.LoadMainAssetAtPath(s_DependencyPath) as GameObject; Object.Instantiate(go, root.transform, true); } } }

注意: 该属性仅支持具有 AssetPostprocessor 回调的本机导入器类型:ModelImporterTextureImporterAudioImporterSpeedTreeImporter

属性

importerType声明导入依赖关系获取器的导入器的类型。
version导入依赖关系获取器的版本。

构造函数

CollectImportedDependenciesAttribute使用 CollectImportedDependencies 属性声明导入依赖关系的获取器。