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 回调的原生导入器类型:ModelImporter、TextureImporter、AudioImporter 和 SpeedTreeImporter。