Как я могу заставить процесс сборки терпеть неудачу через сценарий редактора Unity? - PullRequest
2 голосов
/ 16 марта 2019

Я хочу принудительно завершить процесс сборки, если не выполняются некоторые условия проверки.

Я попытался использовать IPreprocessBuildWithReport безуспешно:

using UnityEditor.Build;
using UnityEditor.Build.Reporting;

public class BuildProcessor : IPreprocessBuildWithReport
{
    public int callbackOrder => 0;

    public void OnPreprocessBuild(BuildReport report)
    {
        // Attempt 1
        // Does not compile because the 'BuildSummary.result' is read only
        report.summary.result = BuildResult.Failed;

        // Attempt 2
        // Causes a log in the Unity editor, but the build still succeeds
        throw new BuildFailedException("Forced fail");
    }
}

Есть лилюбой способ программно заставить процесс сборки завершиться неудачей?

Я использую Unity 2018.3.8f1.

1 Ответ

1 голос
/ 17 марта 2019

Вы можете использовать OnValidate (), который, кажется, именно то, что вы ищете.Допустим, вы хотите убедиться, что ссылка на компонент Text UI не является нулевой перед сборкой, в сценарии, который должен иметь текстовую ссылку, вы добавляете

private void OnValidate()
{
     if (text == null)
     {
          Debug.LogError("Text reference is null!");
     }
}

Наличие вызовов Debug.LogError во время процесса сборкифактически вызывает сбой сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...