ZionGames Docs

Home / Zion Tools / Zion Dependency Graph

πŸ•ΈοΈ Zion Dependency Graph

See every reference. Trust every delete.

Code String References

New in v1.2. Serialized references are only half the story - when a script calls Resources.Load("Prefabs/Enemy"), nothing in Unity's AssetDatabase records that connection. The tool now does that search for you.

What gets detected

  • Resources.Load, Resources.LoadAsync and Resources.LoadAll, with or without generic arguments
  • Shader.Find, matched against the shader's declared name
  • Addressables LoadAssetAsync, LoadAssetsAsync, InstantiateAsync and LoadSceneAsync, matched against both addresses and labels

Every .cs file under Assets/ is read. The scan strips comments first and only trusts plain string literals, so a load call mentioned in a comment, a doc string or a log message can never produce a false match. LoadAll on a folder resolves to everything inside it. Addressables support works through reflection, with no dependency on the package being installed.

Where it appears

  • Detail panel - a "Loaded by code" section lists every call site with script and line; click to open your IDE at that line
  • Orphans tab - assets with a detected code reference are excluded from the orphan list
  • Delete dialog - warns, with script and line named, if code loads anything you're about to delete

Case-mismatch warnings

A Resources.Load path that only matches an asset when letter case is ignored is flagged with a warning marker. These calls load fine in the editor and on Windows, then return null on Android and other case-sensitive platforms.

Keeping current

The scan runs in the background alongside the dependency scan, a few milliseconds per editor frame. When you save a script, just that file is re-scanned - there is nothing to configure and no rescan button to remember. Detection can be switched off entirely in the toolbar Options menu (persisted per editor install).

What still cannot be detected

A load whose argument is a variable, an interpolated string or a concatenation cannot be resolved by any static scan - the value only exists at runtime. The difference in v1.2 is that these calls are no longer invisible: they are found and listed as unresolvable, so you know exactly where the remaining blind spots are.

Continue to Find Path.