Skip to content

Latest commit

 

History

History
131 lines (74 loc) · 4.94 KB

File metadata and controls

131 lines (74 loc) · 4.94 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 reliable uncompressed sizes for all types. Mesh, Script, Shader, AnimationClip, Font, ScriptableObject, and Other assets use platform-specific estimation ratios. Texture and Audio uncompressed sizes are typically accurate.

Nodes using estimates are flagged isUncompressedEstimated: true in the internal .blsnapshot schema.

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. For projects exceeding 5 000 packed assets a summary view is shown. There is no zoom-in or pan in v1.0.0.

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 v1.0.0 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 available in v1.0.0.


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