はじめに
今回はUnity公式パッケージであるBuild Report Inspector
について紹介したいと思います。
概要
Build Report Inspector
はBuildPipeline.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
と入力します。
使い方
まずは自身のプロジェクトのBuild Settings
等からビルドを行ってください。
その後、メニューバーのWindow > Open Last Build Report
を選択します。
するとProjectWindow上にAssets/BuildReports/Build_〇〇
が作成され、それを選択するとInspector上にビルドレポートの詳細が表示されます。
Build Report Inspectorの見方
Build Steps
ビルドで行ったそれぞれの処理の所要時間とメッセージが表示されます。
Source assets
ビルドに含まれるアセットとそのサイズが表示されます。
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
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"); } } }