はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】Build Report Inspectorを用いてビルドプロセスに関する情報をインスペクター上に分かりやすく表示する

はじめに

今回はUnity公式パッケージであるBuild Report Inspectorについて紹介したいと思います。

docs.unity3d.com

利用している様子

概要

Build Report InspectorBuildPipeline.BuildPlayerにて取得できるBuild Reportに記載されている情報(publicなAPIで取得できない情報も含まれているよう)を分かりやすくInspector上に表示してくれるパッケージです。
docs.unity3d.com

Build Report Inspector is an Editor script which implements an inspector for the BuildReport class added in Unity 18.1.
The BuildReport class lets you access information about your last build, and helps you profile the time spent building your project and the builds disk size footprint. This information may help you improving your build times and build sizes.
This script allows you to inspect this information graphically in the Editor UI, making it more easily accessible than the script APIs would.

// DeepL翻訳
Build Report InspectorはUnity 18.1で追加されたBuildReportクラスのインスペクタを実装したエディタスクリプトです。
BuildReportクラスを使用すると、最後のビルドに関する情報にアクセスすることができ、プロジェクトのビルドに費やした時間とビルドのディスクサイズのフットプリントをプロファイルするのに役立ちます。この情報は、ビルド時間とビルドサイズの改善に役立ちます。
このスクリプトを使用すると、この情報をエディタUIでグラフィカルに確認できるため、スクリプトAPIよりも簡単にアクセスできるようになります。

About Build Report Inspector | Build Report Inspector | 0.3.0-preview

インストール方法

Package Managerを立ち上げ、Add package from git URL...からcom.unity.build-report-inspectorと入力します。

Add package from git URL

使い方

まずは自身のプロジェクトのBuild Settings等からビルドを行ってください。

Build Settingよりビルド

その後、メニューバーのWindow > Open Last Build Reportを選択します。

Window > Open Last Build Report

するとProjectWindow上にAssets/BuildReports/Build_〇〇が作成され、それを選択するとInspector上にビルドレポートの詳細が表示されます。

ビルドレポートの表示

Build Report Inspectorの見方

Build Steps

ビルドで行ったそれぞれの処理の所要時間とメッセージが表示されます。

Build Steps
メッセージが表示されている様子

Source assets

ビルドに含まれるアセットとそのサイズが表示されます。

Source assets

Output files

ビルドによって書き込まれたファイルが表示されます。

Output files

Stripping

For platforms which support engine code stripping, a list of all engine modules added to the build, and what caused them to be included in the build.

// DeepL翻訳
エンジンコードのストリッピングをサポートするプラットフォームでは、ビルドに追加されたすべてのエンジンモジュールのリストと、それらがビルドに含まれるようになった原因。

About Build Report Inspector | Build Report Inspector | 0.3.0-preview

Stripping

Scenes using Assets

シーンが利用しているアセットを表示してくれます。

これは普通にBuild Settingsからビルドしても情報を取得できません。BuildPipeline.BuildPlayerを実行する際にBuildOptions.DetailedBuildReportを設定してあげてください。

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

public class BuildPlayerExample
{
    [MenuItem("Build/Build StandaloneOSX")]
    public static void MyBuild()
    {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
        buildPlayerOptions.scenes = new[] { "Assets/Scenes/SampleScene.unity" };
        buildPlayerOptions.locationPathName = "StandaloneOSXBuild";
        buildPlayerOptions.target = BuildTarget.StandaloneOSX;
        
        // DetailedBuildReportを指定することで、ビルドの詳細情報を取得できる
        buildPlayerOptions.options = BuildOptions.DetailedBuildReport;

        BuildReport report = BuildPipeline.BuildPlayer(buildPlayerOptions);
        BuildSummary summary = report.summary;

        if (summary.result == BuildResult.Succeeded)
        {
            Debug.Log("Build succeeded: " + summary.totalSize + " bytes");
        }

        if (summary.result == BuildResult.Failed)
        {
            Debug.Log("Build failed");
        }
    }
}
Scenes using Assets