Unity 6.3
0 онлайн 77 гостей 3 в системе
Вход

AssetImporters.ScriptedImporter.GatherDependenciesFromSourceFile(string)

Параметры

Параметр Описание
путь Путь к ресурсу, который в настоящее время обрабатывается этим методом.

Возвращаемое значение

void Структурный массив, содержащий пути к ресурсам, для которых требуется создать зависимости для ресурса, в настоящее время обрабатываемого этим методом.

Описание

Статический обратный вызов, который вы можете реализовать, чтобы задать зависимости артефактов от других ассетов и оптимизировать порядок импорта ассетов.

Если вы реализуете этот метод в классе, наследующем ScriptedImporter, он будет вызван для всех ассетов, которые ваш класс настроен импортировать, ещё до начала импорта.

После этого ваш класс ScriptedImporter может вернуть массив путей к другим ассетам, от результата импорта которых зависит данный ассет (это может зависеть от того, как ваш ScriptedImporter трактует содержимое импортируемого файла).

Unity использует информацию, возвращаемую этим методом, для импорта ассетов в наиболее эффективном порядке, избегая необходимости повторно импортировать ассеты несколько раз, когда это возможно.

Примечание: у каждого типа импортёра свой приоритет в процессе импорта. Если вы укажете зависимость от ассета с другим приоритетом импорта, приоритет она не переопределит, и повторный импорт всё равно может произойти.

Дополнительные сведения о зависимостях артефактов см. AssetImportContext.DependsOnArtifact. Для зависимостей, о которых сообщалось с помощью GatherDependenciesFromSourceFile, нет необходимости сообщать их снова с помощью AssetImportContext.DependsOnArtifact. Тем не менее, допустимо добавлять дополнительные зависимости артефактов, которые могут быть обнаружены во время фактического импорта.

Примечание:
В вашей реализации этого метода или любых методов, которые вы вызываете из вашей реализации, вы не должны вызывать ни один из следующих APIs:

AssetDatabase.CreateAsset

AssetDatabase.LoadAllAssetRepresentationsAtPath

AssetDatabase.LoadAllAssetsAtPath

AssetDatabase.LoadAssetAtPath

AssetDatabase.LoadMainAssetAtPath

AssetImporter.GetAtPath

Unity вызывает исключение, если вы вызываете любой из вышеуказанных методов из вашей реализации этого метода.

using UnityEditor.AssetImporters;

[ScriptedImporter(1, "my_asset_type", AllowCaching = true)] class MyAssetImporter : ScriptedImporter { static string[] GatherDependenciesFromSourceFile(string path) { // Called before actual import for each changed asset that is imported by this importer type (assets having "my_asset_type" file extension in this example) // Extract the dependencies for the asset specified in path. // For asset dependencies that are discovered, return them in the string array, where the string is the path to asset }

public override void OnImportAsset(AssetImportContext ctx) { // There is no need to call ctx.DependsOnArtfact for the dependencies reported in GatherDependenciesFromSourceFile. } }