Параметры
| importedAssets | Массив путей к импортируемым активам. |
| deletedAssets | Массив путей к удаленным ресурсам. |
| movedAssets | Массив путей к перемещенным активам. |
| movedFromAssetPaths | Массив исходных путей для перемещенных ресурсов. |
| didDomainReload | Логическое значение установлено в true, если произошла перезагрузка домена.. |
Описание
Вызывается после завершения импорта любого количества ресурсов (когда индикатор выполнения ресурсов достигает конца).
Этот вызов может произойти после повторного импорта вручную или при перемещении ресурса или папки ресурсов в новое место в окне проекта. Каждый элемент строкового массива содержит путь к файлу относительно папки Assets в корне проекта. importedAssets содержит пути ко всем ресурсам, используемым в операции. Каждый последовательный индекс movedAssets и movedFromAssetPaths относится к одному и тому же ресурсу.
Если вы выполняете массовую операцию с несколькими отдельными ресурсами, а не с папкой, содержащей эти ресурсы, эта функция будет вызываться один раз для каждого объекта, при этом каждый отдельный ресурс будет единственным элементом в различных массивах.
OnPostProcessAllAssets вызывается, когда база данных активов завершает импорт активов. Вы можете безопасно выполнять любые операции с базой данных активов из этого обратного вызова, например загружать, импортировать, перемещать или удалять активы.
OnPostProcessAllAssets следует использовать для инициализации после перезагрузки домена, если инициализация требует операций с активами, таких как загрузка ресурсов. Параметр didDomainReload можно проверить, была ли перезагрузка домена. Все перезагрузки домена вызывают вызов OnPostprocessAllAssets.
Примечание. Если ваш код вызывает импорт каких-либо новых ресурсов во время этого обратного вызова, OnPostProcessAllAssets будет вызываться снова после завершения импорта новых объектов.
Обратите внимание, что эта функция должна быть объявлена как static, то есть она не будет вызываться правильно, если она объявлена как функция экземпляра.
Порядок, заданный GetPostprocessOrder, не влияет на эту функцию, вместо этого порядком можно управлять, определяя зависимости с помощью следующих атрибутов:
- RunAfterClassAttribute, RunBeforeClassAttribute
- RunAfterAssemblyAttribute, RunBeforeAssemblyAttribute
- RunAfterPackageAttribute, RunBeforePackageAttribute
Примечание. Также доступна версия этого обратного вызова без параметра didDomainReload (OnPostprocessAllAssets(string[] importAssets, string[] deleteAssets, string[] moveAssets, string[] moveFromAssetPaths))
using UnityEngine;
using UnityEditor;
class MyAllPostprocessor : AssetPostprocessor
{
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths, bool didDomainReload)
{
foreach (string str in importedAssets)
{
Debug.Log("Reimported Asset: " + str);
}
foreach (string str in deletedAssets)
{
Debug.Log("Deleted Asset: " + str);
}
for (int i = 0; i < movedAssets.Length; i++)
{
Debug.Log("Moved Asset: " + movedAssets[i] + " from: " + movedFromAssetPaths[i]);
}
if (didDomainReload)
{
Debug.Log("Domain has been reloaded");
}
}
}

