See what changed, not what moved.
Scene Diff compares two versions of a Unity scene or prefab and reports the
difference the way the Editor thinks about it: by GameObject, by component,
by property. Objects are matched by their fileID and GUID
identity, so a rename is a rename and a reorder is nothing at all.
Unity's files are text, but their meaning is not
A .unity or .prefab file is YAML, so Git will
happily show you a diff of it. That diff is close to useless. Renaming one
GameObject can rewrite a block hundreds of lines long. Reparenting an object
shows up as a deletion in one place and an insertion in another, with no
indication that they are the same object. Reordering siblings churns the file
without changing anything the player will ever see. Meanwhile an actual change —
a reference repointed to the wrong material — is one line that looks exactly
like every other line.
Reviewers end up reconstructing the scene in their head from
fileID numbers. Most of them give up and approve the pull request
on trust.
Capabilities
-
Identity matching
Objects are paired by
fileIDand GUID before anything is compared. Name-based matching — the approach most comparison tools use — breaks the moment somebody renames a node or has two siblings called "Cube". - Grouped by object Results are organised as a hierarchy of GameObjects and components with inspector-style property names, not as raw serialized field paths.
-
Prefab overrides
Prefab instance modifications are compared as overrides against their
source, rather than as opaque entries in an
m_Modificationslist. - Noise collapsed Differences caused purely by serialization version migration are folded away, so upgrading the Editor does not make every asset look modified.
- Read-only Scene Diff opens files, parses them and shows you the result. It never writes, never merges, never "fixes". Point it at production assets without a backup ritual.
Typical uses
Reviewing a pull request that touches a scene. Instead of scrolling YAML, you get a list of the objects the branch actually changed and what changed on them.
Before accepting a merge. A text merge can complete cleanly and still leave a wrong parent or a broken reference. Comparing the merged result against both inputs catches that before it reaches the main branch.
Auditing an automated edit. Scripted asset passes and editor agents can touch dozens of objects in one run. Diffing the before and after gives you a reviewable record of what the run did.
Working out what a teammate did. "The lighting looks different and I don't know why" is a diff question, but only if the diff speaks in objects.
Compatibility
- Unity 2022.3 LTS and newer, including Unity 6.
- Serialization Project must use Force Text asset serialization (Project Settings → Editor → Asset Serialization).
- Render pipeline Irrelevant. Scene Diff is an Editor tool that reads serialized files and ships no shaders or runtime code.
- Builds Editor-only. Nothing from this package is compiled into a player build.