Unity 6000.0 LTS+ · verified on Unity 6000.0 and 6000.5 · editor-only · no external dependencies · MIT
An editor-only X-ray of your scene's wiring. Every serialized reference, every UnityEvent target, every ScriptableObject and material a prefab pulls in — drawn as an interactive graph you can drill into, arrange, and keep. Plus the boring-but-critical parts: missing-reference detection, dependency cycles, a health score, and a build guard that fails CI when something is broken.
No runtime code, no external packages, no services.
Into an existing project — copy Assets/SceneXRay/ anywhere under your Assets/.
It ships its own assembly definition (autoReferenced: false), so it compiles on its own and
never leaks into your runtime assemblies.
As a sample project — clone this repo and open it in Unity 6000.0.62f1 or newer:
git clone https://github.com/AndriiSviatenko/SceneXRay.gitThere is no bootstrap call, no prefab to drop in a scene, and no settings to fill in.
To try a ready-made graph, open Assets/SceneXRay/Samples/SceneXRay Demo.unity before opening
the graph window. The sample uses only Unity primitives and one local material.
1. Tools ▸ SceneXRay ▸ Open Graph View (Ctrl+Shift+Alt+X)
2. Press Refresh — the loaded scenes are scanned
3. Double-click any node to drill into it, Backspace to go back
| System | What it does |
|---|---|
| Dependency graph | GraphView canvas of the loaded scenes — nodes are objects, edges are references |
| Drill-in focus | Double-click a node for its ego network; radius 1–3, direction In / Out / Both |
| Browser navigation | Back / Forward with full camera + layout restore, clickable breadcrumb trail |
| Neighborhood highlight | Hover a node — neighbours light up, outgoing edges go amber, incoming cyan, rest dims |
| Four layouts | Auto · Tree (layered DAG) · Force (packed columns) · Radial (rings around the focus) |
| Saved arrangements | Arrange the graph your way, save it per scene, auto-restore next time you open it |
| Undo / Redo | Ctrl+Z / Ctrl+Y for node moves and re-layouts, 32 steps deep |
| Zoom LOD | Cards shed detail and grow their titles as you zoom out — readable at 20% |
| MiniMap | Draggable, resizable overview of the whole graph |
| Health score | Missing references, dependency cycles and god objects, scored live in the toolbar |
| Fix Missing | Lists every broken reference and rebinds by name where it can |
| Global search | Find what references any object across scenes and the project |
| Bookmarks | Pin objects for quick jumps — Ctrl+Shift+Alt+J to toggle, …+K to open |
| Inspector strip | References / Referenced By cards on GameObjects, prefab assets and ScriptableObjects |
| Scene overlay | Dependency lines drawn in the Scene View, colour-coded by link type |
| Scene diff | Compare the dependency links of two scene assets without opening them permanently |
| Code dependencies | Optional scan for Find*<T>(), GetComponent<T>(), object-name and tag lookups |
| Export | JSON · CSV · self-contained interactive HTML · Mermaid · Markdown |
| Build guard + CLI | Quality gates in batchmode, non-zero exit code when the scene is broken |
| Localization | English + Ukrainian, switchable in Project Settings |
| Input | Action |
|---|---|
Double-click / Enter |
Focus the node (its ego network) |
Backspace / Alt+← |
Back · Alt+→ Forward · Esc up one level |
= / − |
Grow / shrink the focus radius |
←↑↓→ |
Move the selection between cards, camera follows |
Ctrl+wheel |
Zoom · MMB drag or Alt+drag pan · A fit · 0 reset zoom |
Ctrl+Z / Ctrl+Y |
Undo / redo node arrangement |
Ctrl+S |
Save this scene's arrangement |
Ctrl+F |
Jump to the search field |
Right-click |
Focus · expand · select in Hierarchy/Project · view references |
Clicking a node selects the underlying object in the Hierarchy (or pings the asset in the Project window), so the Inspector always follows what you are looking at.
Every shortcut is rebindable under Edit ▸ Shortcuts — the in-graph ones under the SceneXRay
category, the window/bookmark chords under Main Menu.
| Link type | Source | Example |
|---|---|---|
| Direct | serialized GameObject / Component field |
PlayerController.visualRoot → Visual |
| UnityEvent | persistent listener target + method | Button.m_OnClick → GameManager.Restart() |
| Asset | any referenced project asset | MeshRenderer → M_Player, TMP_Text → LiberationSans SDF |
| Missing | serialized reference whose target is gone | Spawner.target → Missing |
| In code | opt-in code lookup | Spawner → <EnemyPool>, HUD → FindWithTag("Player") |
Components listed in Ignored Components are skipped (Transform, RectTransform by default),
m_Script self-links are never recorded, and Unity's built-in resources are excluded unless you
opt in — so the graph shows your wiring, not engine noise.
Project Settings ▸ SceneXRay
| Group | Setting | Effect |
|---|---|---|
| Overlay | Enable / Animate | Scene View dependency lines |
| Colors | Direct · UnityEvent · Missing · Asset · In Code · Line Width | Applies to both the overlay and the graph edges, live |
| Inspector | Inspector Integration | The References / Referenced By strip |
| Graph | Max Nodes In Graph | Page size for very large scenes |
| Scanning | Ignored Components · Asset References · Built-ins · Code Dependencies | What the scanner records — changing these rescans immediately |
| Build | Build Guard · Fail Build On Missing Refs | CI enforcement |
| Language | English / Українська | Editor UI language |
Unity -batchmode -quit -projectPath . \
-executeMethod SceneXRay.Editor.Core.CommandLine.ScanScene \
-scene Assets/Scenes/Main.unity \
-output dependencies.jsonWrites every link as JSON and exits with code 1 when a quality gate fails, so a broken
reference stops the pipeline instead of shipping.
Assets/SceneXRay/ the asset — copy this folder into your own project
Editor/Core/ scanning, reverse index, analysis, storage
Editor/UI/ graph canvas, inspector strip, scene overlay
Editor/Windows/ graph, search, bookmarks, references, fix-missing, diff
Editor/Exporters/ JSON · CSV · HTML · Mermaid · Markdown
Documentation/ offline guide, license and third-party notice
Samples/ pipeline-neutral dependency demo scene
Tests/Editor/ 23 repository/CI EditMode tests (excluded from the release archive)
docs/index.html the documentation page, published via GitHub Pages
Saved arrangements live in UserSettings/SceneXRay/, caches and bookmarks in Library/SceneXRay/ —
nothing SceneXRay writes ends up in version control.
- Unity 6000.0 LTS (Unity 6) or newer (verified on Unity 6000.0.62f1 and 6000.5.6f1)
- No packages, no third-party libraries, no runtime footprint
MIT — free for personal and commercial use.