Version: 2021.1

CollectImportedDependenciesAttribute

class in UnityEditor.AssetImporters

切换到手册

描述

使用此方法属性可指定哪些方法对导入的资源声明依赖关系。方法有 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为其声明导入依赖关系的 getter 的导入器类型。
version导入依赖关系 getter 的版本。

构造函数

CollectImportedDependenciesAttribute使用 CollectImportedDependencies 属性可为导入的依赖关系声明 getter。
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961