Описание
Используйте этот атрибут метода, чтобы указать, какие методы объявляют зависимости от импортированных ресурсов. Эти методы вызываются 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: ModelImporter, TextureImporter, AudioImporter и SpeedTreeImporter.
Свойства
importerType | Тип импортера, для которого объявлен импортируемый метод получения зависимостей. |
version | Версия импортированного получателя зависимостей. |
Конструкторы
CollectImportedDependenciesAttribute | Используйте атрибут CollectImportedDependencies, чтобы объявить геттеры для импортированных зависимостей.. |