The Build Report Tool serves as an essential editor extension designed to demystify Unity's compilation outputs. When building a target binary, Unity outputs a aggregated log containing asset overhead, serialized dependencies, and executable payload binaries. The engine's raw build log output, however, is unstructured and volatile. The Build Report Tool hooks into Unity's BuildPipeline via the IPostprocessBuildWithReport interface to capture raw build metrics instantly upon compilation completion.
At its architectural core, the utility decouples log parsing from data representation. The parser inspects the output of the native UnityEditor.Build.Reporting.BuildReport data structure along with the local Editor.log file, extracting precise byte allocations, compressed versus uncompressed size variances, and project asset relative paths. Captured data is mapped into persistent ScriptableObject data instances (or serialized XML containers), allowing developers to archive historical build profiles across different engine versions, targets, and optimization passes without mutating runtime assemblies.
Analyzing builds containing tens of thousands of individual assets can trigger significant Garbage Collection (GC) pressure inside the Unity Editor if handled carelessly. The architecture mitigates GC spikes during report generation through the following structural paradigms:
The editor interface operates via an advanced custom EditorWindow utilizing IMGUI/UI Toolkit rendering patterns designed to expose granular metrics without dragging down editor frame rates. The custom inspector splits build analysis into high-impact categories: Asset Breakdown, Unused Assets Scanner, Build Options Log, and File Dependency Treemaps.
The tool automatically aggregates individual files into dedicated type filters, helping developers pinpoint ballooning file sizes before deployment:
The Unused Assets Engine compares project files present in the local Assets/ directory against the direct dependency graph generated by scenes included in the Build Settings panel. This allows technical directors to perform safe project cleanups without relying on brittle runtime missing-reference searches.
Integrating the Build Report Tool into an established Unity project requires zero modification of project runtime C# scripts or game logic. The asset resides strictly within an Editor assembly folder to guarantee zero runtime memory overhead or inclusion in final production binaries.
To programmatically hook into the analysis pipeline or export build reports during continuous integration (CI/CD) automated builds, implement a custom editor script utilizing Unity's build interfaces:
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEngine;
using BuildReport;
public class AutomatedBuildReporter : IPostprocessBuildWithReport
{
// High callback order ensures the reporter runs after primary asset processors
public int callbackOrder => 999;
public void OnPostprocessBuild(BuildReport report)
{
Debug.Log($"[BuildReportTool] Processing build for target: {report.summary.platform}");
// Trigger manual analysis generation via report object
string reportSavePath = "BuildReports/LatestBuildReport.xml";
// Pass Unity's native BuildReport object to the analyzer
BuildReportTool.ReportData generatedData = BuildReportTool.ReportGenerator.CreateReport(report);
if (generatedData != null)
{
BuildReportTool.ReportGenerator.SaveReport(generatedData, reportSavePath);
Debug.Log($"[BuildReportTool] Successfully exported build analysis to: {reportSavePath}");
// Check for critical size thresholds
double totalSizeMb = report.summary.totalSize / (1024.0 * 1024.0);
if (totalSizeMb > 150.0)
{
Debug.LogWarning($"[BuildReportTool] Warning: Target build size ({totalSizeMb:F2} MB) exceeds maximum cellular threshold.");
}
}
}
}
Editor/ folder structure).Deploying software across low-spec mobile devices, consoles, or WebGL environments demands strict size budgets. The Build Report Tool highlights actionable optimization targets that are frequently buried inside standard Unity logs.
When analyzing a report, look for common systemic asset bloated issues across the following areas:
Shaders aggregate list to detect missing #pragma skip_variants directives or unstripped multi-compile keywords.Editor.log.| Category | Tools / Utilities |
|---|---|
| Latest Version | v3.13.10 (4 tracked releases) |
| File Size | 585.21 KB |
| Added to Platform | February 5, 2026 |
| Views | 11 views |
| Downloads | 3 downloads |
| Favourites | 1 favourites |
| Official Store | Buy Original License on Unity Asset Store → |
| Issue with Package? | Report Broken Link → |