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

Использование обратных вызовов сборки

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

Поддерживаемые обратные вызова

В следующей таблице перечислены обратные вызовы сборки, поддерживаемые Unity:

Обратный вызов Метод Описание
BuildPlayerProcessor PrepareForBuild Добавьте файлы и выполните пользовательскую настройку перед началом сборки.
IPreprocessBuildWithContext OnPreprocessBuild Вызывается в начале сборки.
IPostprocessBuildWithContext OnPostprocessBuild Вызывается в конце сборки.
IFilterBuildAssemblies OnFilterAssemblies Удаление сборок из сборки.
IPostBuildPlayerScriptDLLs OnPostBuildPlayerScriptDLLs Чтение или исправление управляемых сборок после компиляции.
IProcessSceneWithReport OnProcessScene Вызывается, пока Unity обрабатывает каждую сцену для сборки.
IPreprocessShaders OnProcessShader Фильтрация списка вариантов шейдера для сокращения времени сборки шейдера.
IPreprocessComputeShaders OnProcessComputeShader Похож на IPreprocessShaders, но предназначен для вычисления шейдеров.
IUnityLinkerProcessor GenerateAdditionalLinkXmlFile Настройка этапа удаления управляемого кода для сборки Player.
IPostprocessLaunch OnPostprocessLaunch Вызывается, если Игрок запускается в качестве последнего шага сборки.

Сборки Player поддерживают все эти обратные вызовы. Сборки только содержимого, не включающие управляемые сборки, вызывают лишь часть из них: IPreprocessBuildWithContext, IPostprocessBuildWithContext, IProcessSceneWithReport и IPreprocessComputeShaders.

Порядок обратного вызова

Вы можете использовать IOrderedCallback.callbackOrder чтобы управлять порядком выполнения обратного вызова сборки относительно других реализаций того же интерфейса. Unity сортирует обратные вызовы по возрастанию значения порядка, и вы можете назначить любое целое число — отрицательное или положительное. Например, если ваша реализация IPreprocessBuildWithContext имеет значение порядка 2, он работает после другого IPreprocessBuildWithContext обратный вызов, имеющий значение порядка 1.

Обратный вызов сборки во время постепенной сборки

На этапе сборки проигрывателя, связанном с содержанием, происходят следующие обратные вызова сборки:

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

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

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

Дополнительные ресурсы