Skip to content

Latest commit

 

History

History
133 lines (76 loc) · 5.19 KB

File metadata and controls

133 lines (76 loc) · 5.19 KB

Limitations

← Home


Dependency Graph

Soft References Are Not Tracked

AssetDatabase.GetDependencies() only resolves hard (serialised field) references.

Pattern Tracked
[SerializeField] Texture2D icon; ✅ Yes
Resources.Load<AudioClip>("click") ❌ No
AssetBundle.LoadAsset<GameObject>("Prefab") ❌ No
Addressables.LoadAssetAsync<Sprite>("star") ❌ No
String-based runtime path at runtime ❌ No

For projects using Addressables or AssetBundles, dependency chains shown in BuildLens may be incomplete. Assets still appear in the treemap and asset list because BuildReport captures all packed assets regardless of reference type; only the edges are missing.

Script Assembly Edges Are Coarse

Assembly-to-assembly dependencies (e.g. Assembly-CSharp.dllUnity.InputSystem.dll) are tracked. Individual C# type or method references within an assembly are not.

Shader Variant Detail

Shader variants are packed as separate BuildReport entries. BuildLens shows each as an individual node but does not expose keyword combinations or variant counts.

AssetDatabase Must Be Consistent

The dependency scan reads AssetDatabase state at the moment analysis runs. If assets were modified or deleted between the build and the analysis, dependency results may not match the built content. Run analysis immediately after a build for best accuracy.


Build Report

UncompressedBytes May Be Estimated

BuildReport provides packedSize (compressed) but not a reliable uncompressed size for any type. Every asset — Texture and Audio included — uses the same 1.3× multiplier on the compressed size as an approximation. There is currently no type-specific calculation; treat UncompressedBytes as a rough indicator, not a measurement.

Nodes using estimates are flagged isUncompressedEstimated: true in the internal .blsnapshot schema — in practice this is true for almost every asset, since the same heuristic applies universally.

Requires a Completed Player Build

BuildLens reads Library/LastBuild.buildreport. Only a completed player build produces this file. Play Mode, script-only compilation, and Editor builds do not.

Only the Last Build Is Directly Accessible

Unity stores only the most recent LastBuild.buildreport. BuildLens preserves history via snapshots. If you run a new build before analysing the previous one, the previous report is overwritten by Unity — the snapshot for that build will not be available.

Recommendation: run analysis after every build before starting the next.


UI

No Treemap Zoom or Pan

The treemap renders all assets in a fixed viewport, with no special handling for very large projects — there is no summary or aggregation view for projects with a very high asset count, so very large treemaps may render many small tiles. There is no zoom-in or pan.

Asset List Capped at 200 Rows

When the filtered set exceeds 200, only the top 200 by the active sort mode are shown. The treemap is not capped.

Dependency Panel Capped at 200 Results Per Column

Transitive lists are capped at 200 entries per column to prevent IMGUI performance degradation.

No Snapshot Deletion Undo

Deleting a snapshot from the History panel is immediate and permanent.

IMGUI Rendering Engine

BuildLens uses Unity's IMGUI system. IMGUI does not support GPU-accelerated rendering for the treemap, sub-pixel antialiasing on rectangle borders, or smooth animations. Migration to UI Toolkit is planned for a future major version.


Analysis

No Concurrent Analysis

Only one analysis can run at a time. There is no cancel operation — a running analysis runs to completion or failure.

Main-Thread Blocking

AssetDatabase.GetDependencies() runs on the main thread for Unity 2019.4 / 2020.x compatibility. On large projects (3 000+ assets) this can block the Editor UI for 20–60 seconds. Background-thread execution for Unity 2021.2+ is planned.


History

History Is Local to the Machine

BuildLensData/ is machine-local. To share history across a team, commit it to version control.

No Dependency Structure Diff

The diff compares asset presence and size only. Changes to dependency edge structure between two snapshots are not surfaced.


Export

CSV Does Not Include GUID Lists

The CSV export includes dependency_count / dependent_count but not the GUID arrays. Use the JSON export (schema v1.1) for full dependency data.

No PDF Export

PDF export is not currently available.


Planned Improvements

Feature Status
Shader variant keyword breakdown Planned
Budget threshold configuration with CI exit codes Planned
Addressables group and bundle view Planned
Shared / remote snapshot storage Planned
Dependency structure diff between snapshots Planned
UI Toolkit migration (zoom, pan, GPU rendering) Planned
PDF report export Planned
Soft reference detection via static analysis Under investigation
Background-thread AssetDatabase scan (Unity 2021.2+) Planned

Feature requests: Discord · Bug reports