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

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

Параметры

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

Описание

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

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

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

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

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

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

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

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

Примечание: Версия этого обратного вызова без параметра didDomainReload также доступна (OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths))

using UnityEngine;
using UnityEditor;

class MyAllPostprocessor : AssetPostprocessor { // Increment the version number, when the AssetPostProcessors code/behavior is changed static readonly uint k_Version = 0; public override uint GetVersion() { return k_Version; }

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"); } } }