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

CollectImportedDependenciesAttribute 构造函数

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public CollectImportedDependenciesAttribute(Type importerType, uint version);

参数

importerType AssetDatabase 通过调用 getter 时,其所属导入器的类型。
version 导入依赖项 getter 的版本。

描述

使用 CollectImportedDependencies 属性声明导入依赖项的 getter。

建议在每次更改脚本时都递增回调的版本号。这将强制重新导入使用较低版本号导入的资源。

此示例演示了如何声明 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