ZionGames Docs

Home / Zion Tools / Zion Dependency Graph

πŸ•ΈοΈ Zion Dependency Graph

See every reference. Trust every delete.

Changelog

Version 1.3.0

Feature release: Addressables duplicate-bundle analysis, object-level false-positive filtering, and a headless CI gate. Fully backwards compatible - existing caches, backups and settings carry over untouched, and a project without Addressables installed sees no new tab, no compile errors, and no change in behaviour.

  • Added: Addressables duplicate bundle analysis (new tab). Projects your bundle layout statically from each group's BundledAssetGroupSchema packing mode and walks every explicit entry's dependency tree - the same information a build would produce, without running one. Any implicit dependency reachable from two or more distinct bundles is flagged, with the reference chain that puts it there
  • Added: object-level false-positive filtering. For text-serialised assets the audit reads the actual {fileID, guid} pairs each referrer points at and intersects them per bundle, so two prefabs referencing disjoint sub-objects of one sprite sheet or FBX are correctly cleared as Partial with zero wasted bytes - where Unity's own rule flags them and its Fix would isolate them into an unnecessary bundle
  • Added: fix guidance per finding - no action needed, accept the duplication, promote to a shared group, or merge groups. Never an automatic restructure; thresholds (16 KB accept-duplication ceiling, 25-entry merge ceiling) are shown rather than hidden
  • Added: Resources / Addressables overlap detection - assets under a Resources/ folder that are also reachable from a bundle, duplicated between the Resources blob and the bundle
  • Added: bundle membership on every asset's detail panel, not just flagged duplicates - which bundle(s) an asset lands in, explicit or implicit, and the reference chain responsible; shown for any selected asset once an audit has run, independent of the main dependency cache
  • Added: CSV and JSON export for the Addressables report - CSV one row per finding sorted by wasted bytes descending, JSON with the complete duplicate, overlap and membership data
  • Added: headless CI entry point AddressablesAuditCI.RunAndFailIfOverThreshold, invoked via -executeMethod, failing the run with a non-zero exit code when wasted bytes exceed -zionWastedBytesThreshold and optionally writing the report to -zionAuditExportPath. No menu item on purpose, and it only calls EditorApplication.Exit in batch mode
  • Improved: Addressables audits are opt-in per session, the same reasoning as Find Duplicates in 1.2
  • Improved: package-internal assets (default materials and shaders Unity auto-assigns, and anything else under Packages/) are excluded from findings - you cannot promote or merge a package's asset into your groups, so surfacing it would be noise on every project

Compatibility: Unity 6000.0 LTS or newer, unchanged from 1.2. Addressables 1.21 through 2.x, fully optional and detected at runtime; the Addressables-specific code lives in its own assembly that only compiles when the package is present.

Version 1.2.0

  • Added: code string reference detection - Resources.Load / LoadAsync / LoadAll, Shader.Find and Addressables keys (addresses and labels) resolved to project assets; comment-aware, literal-only, updated incrementally on script save
  • Added: "Loaded by code" section in the detail panel with click-to-line
  • Added: delete dialog warnings when code loads an asset being deleted, and when a selected asset still has inbound references
  • Added: case-mismatch warnings for Resources.Load paths
  • Added: Find Path mode (toolbar toggle or P; Esc cancels) - shortest chain plus up to four alternatives, wrong-order queries answered in the true direction
  • Added: Options menu with a persisted toggle for code detection
  • Fixed: backups could silently skip files after a file dialog changed the process working directory - paths now resolve against the project root, every backup copy is verified on disk before deletion is allowed, and an empty backup aborts the delete with an explicit error
  • Fixed: removed GraphView's built-in unguarded Cut / Copy / Delete / Duplicate from the node right-click menu - the only delete path is the confirmed, backed-up one
  • Fixed: the confirm button rendered as "Delete _Backup" on Windows; it now reads "Backup + Delete"
  • Fixed: deleted assets no longer linger in the graph - the view rebuilds after a delete
  • Improved: duplicate detection is opt-in per session via the Find Duplicates button - it never runs automatically on editor start, script compile, Play mode, or after a rescan
  • Improved: deleting duplicates updates the list in place instead of re-hashing the project
  • Improved: orphan detection excludes assets with detected code references
  • Improved: dynamic (unresolvable) load calls are detected and listed rather than ignored

Version 1.1.1

  • Fixed: event handler lifecycle bug in the dependency graph window
  • Improved: allocation and GC reductions across the sync scanner, async scanner, Addressables probe and window code - roughly 5–15% faster scans on large projects with smoother frame timing

Version 1.1.0

  • Asynchronous scanning
  • Duplicate file detection (Dupes tab)
  • Keyboard shortcuts for common actions
  • Settings persistence (filter, depth, panel widths)
  • Post-delete cache updates - deleting assets is instant, no full rescan

Version 1.0.0 - Initial release

  • Interactive node-based dependency graph (pan, zoom, minimap, layered layout)
  • Conservative orphan detection with exclusions
  • Heaviest-assets view, recents, and type filtering
  • Safe delete with timestamped backup and restore
  • Graphviz DOT export and Markdown/CSV reports

Support

For bug reports or feature requests, use the contact link on the Asset Store listing.

License

This package is licensed under the standard Unity Asset Store EULA.