コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】IPreprocessBuildWithReport で例外が発生した時にビルドを止める方法

概要

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

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

    public void OnPreprocessBuild( BuildReport report )
    {
        throw new Exception();
    }
}

IPreprocessBuildWithReport の OnPreprocessBuild で例外が発生しても

f:id:baba_s:20211212154933p:plain

ビルドは止まらず
Build completed with a result of 'Succeeded' と表示されてしまいますが

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

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

    public void OnPreprocessBuild( BuildReport report )
    {
        throw new BuildFailedException( "あああ" );
    }
}

BuildFailedException を投げると

f:id:baba_s:20211212155140p:plain

Build completed with a result of 'Failed' と表示されてビルドが止まってくれます

参考サイト様