IPreprocessBuildWithContext
Описание
Реализуйте этот интерфейс, чтобы выполнить код в начале сборки плеера или AssetBundle.
В начале сборки Player или AssetBundle Unity использует свойство IOrderedCallback.callbackOrder каждой реализации, чтобы определить порядок вызова обратных вызовов.
Этот обратный вызов может быть полезен для автоматизированных задач и проверки правильности настройки среды сборки.
Из этого обратного вызова нельзя запустить дополнительную сборку. Чтобы запустить сборку AssetBundle в начале сборки Player, вместо этого используйте BuildPlayerProcessor.PrepareForBuild.
Примеры использования:
- Для проверки подлинности, e.g. подтверждая необходимые настройки сборки, переменные среды, содержание или другие условия, специфичные для проекта. Когда это возможно, вы можете автоматически исправить проблемы, изменив настройки. Или вы можете не выполнить сборку, бросив BuildFailedException вместе с ясным сообщением об ошибке.
- Чтобы убедиться, что необходимые Assets включены в сборку. См. PlayerSettings.SetPreloadedAssets.
- Для генерации номеров версий, журналов изменений, файлов link.xml или другого содержимого, которое должно быть регенерировано перед каждой сборкой Player или сборкой AssetBundle.
- Для ведения журналов, отчетов или отправки аналитических данных.
Обратные вызовы построения являются мощной функцией, но при их реализации важно поддерживать детерминированный выход построения. Дополнительные сведения см. в Использование обратных вызовов сборки.
Результат сборки должен быть предсказуемым и воспроизводимым, основанным на содержании проекта, версии Unity и установленных пакетах. Введение поведения, специфического для среды, внешних зависимостей, случайности или других недетерминистических элементов может привести к результатам, которые трудно отладывать или воспроизводить. Эта непредсказуемость может подорвать эффективность и точность постепенных сборок или постепенных обновлений.
Основное отличие между этим интерфейсом и IPreprocessBuildWithReport или Build.IPreprocessBuild означает, что этот обратный вызов вызывается на сборках AssetBundle и сборках Player.
Дополнительные ресурсы: BuildPlayerProcessor.PrepareForBuild, IPostprocessBuildWithContext, BuildPlayerProcessor, BuildPipeline.BuildPlayer, BuildPipeline.BuildAssetBundles.
using System; using UnityEditor.Build;
class BuildScheduleEnforcer : IPreprocessBuildWithContext { public int callbackOrder { get { return 100; } } public void OnPreprocessBuild(BuildCallbackContext ctx) { if (DateTime.Now.DayOfWeek == DayOfWeek.Thursday) // Force the build to fail. This message will appear in the console and Editor log. throw new BuildFailedException("No builds are allowed on Thursdays"); } }
Открытые методы
| Метод | Описание |
|---|---|
| OnPreprocessBuild | Реализуйте этот метод, чтобы получить обратный вызов до начала сборки. |