A Unity Editor extension that visualizes differences between serialized Unity assets — prefabs, scenes, materials, ScriptableObjects, and more. Built for teams using Git, where raw diffs of .prefab and .unity files are unreadable.
-
Hierarchical YAML Diffing: Compare YAML files and see changes organized by GameObject > Component > Field, not raw text lines.
-
Full Asset Support: Prefabs, scenes (
.unity), materials (.mat), ScriptableObjects (.asset), and more. -
Git Integration:
- Fetch changes from last commit, working tree, or staged files
- Compare any asset to a previous commit
- Manual file comparison as fallback
-
MonoBehaviour Script Resolution: Resolves script GUIDs to actual class names (e.g., shows "PlayerController" instead of "MonoBehaviour").
-
User Friendly: Replaces 32-character hex GUIDs with human-readable asset names.
-
Search & Filter: Type to filter changes by GameObject name, component type, field path, or value.
-
Context Menu: Right-click any change to copy field paths or values.
-
Via Git URL (recommended): In Unity: Window > Package Manager > + > "Add package from git URL..." Enter the repository URL.
-
Via Local Disk: Clone the repo, then in Unity: Window > Package Manager > + > "Add package from disk..." Select the
package.jsonfile.
The package includes YamlDotNet.dll in the Plugins folder. Ensure your project's API Compatibility Level is set to .NET Standard 2.1 (Project Settings > Player > Api Compatibility Level).
-
Open the Tool: In Unity, go to Tools > AssetDiff > Diff Tool.
-
Select Comparison Mode: Use the "Source" dropdown to choose: Last Commit, Working Tree, or Staged.
-
Fetch Changes: Click Fetch Changes to detect modified YAML assets from Git.
-
View Diffs: Select an asset on the left panel to see its hierarchical diff on the right.
-
Manual Comparison: Click Manual Diff to compare any two YAML files directly.
-
Compare to Commit: Select an asset, then click Compare to Commit to pick a specific commit from history.
-
Compare to Branch: Select an asset, then click Compare to Branch to pick a specific Git branch to compare to.
- Unity: 2022.3 LTS or later
- Git: Required for Git integration. Your Unity project must be inside a Git repository.
- .NET Standard 2.1: API Compatibility Level must be .NET Standard 2.1 (default in Unity 2022.3).
MIT License. See LICENSE.md for details.
Contributions, issues, and feature requests are welcome! Feel free to open an issue or submit a pull request.
