Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SceneXRay

See every dependency in your Unity scene — before it breaks the build

Unity 6000.0 LTS+ · verified on Unity 6000.0 and 6000.5 · editor-only · no external dependencies · MIT

Documentation · Issues


What is this?

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.


Install

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.git

There 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.


Quick start

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

Features

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

Graph controls

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.


What gets scanned

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.


Settings

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

CI / batchmode

Unity -batchmode -quit -projectPath . \
      -executeMethod SceneXRay.Editor.Core.CommandLine.ScanScene \
      -scene Assets/Scenes/Main.unity \
      -output dependencies.json

Writes every link as JSON and exits with code 1 when a quality gate fails, so a broken reference stops the pipeline instead of shipping.


Repository layout

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.


Requirements

  • 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

License

MIT — free for personal and commercial use.


Editor tooling for Unity developers who inherited someone else's scene