Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

AssetPostprocessor.OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths, bool didDomainReload)

Параметры

importedAssets Массив путей к импортируемым активам.
deletedAssets Массив путей к удаленным ресурсам.
movedAssets Массив путей к перемещенным активам.
movedFromAssetPaths Массив исходных путей для перемещенных ресурсов.
didDomainReload Логическое значение установлено в true, если произошла перезагрузка домена..

Описание

Вызывается после завершения импорта любого количества ресурсов (когда индикатор выполнения ресурсов достигает конца).

Этот вызов может произойти после повторного импорта вручную или при перемещении ресурса или папки ресурсов в новое место в окне проекта. Каждый элемент строкового массива содержит путь к файлу относительно папки Assets в корне проекта. importedAssets содержит пути ко всем ресурсам, используемым в операции. Каждый последовательный индекс movedAssets и movedFromAssetPaths относится к одному и тому же ресурсу.

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

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

OnPostProcessAllAssets следует использовать для инициализации после перезагрузки домена, если инициализация требует операций с активами, таких как загрузка ресурсов. Параметр didDomainReload можно проверить, была ли перезагрузка домена. Все перезагрузки домена вызывают вызов OnPostprocessAllAssets.

Примечание. Если ваш код вызывает импорт каких-либо новых ресурсов во время этого обратного вызова, OnPostProcessAllAssets будет вызываться снова после завершения импорта новых объектов.

Обратите внимание, что эта функция должна быть объявлена ​​как static, то есть она не будет вызываться правильно, если она объявлена ​​как функция экземпляра.

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

Примечание. Также доступна версия этого обратного вызова без параметра 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"); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3