How do Unity text-serialised scenes/prefabs support merging, and what does the UnityYAMLMerge tool document about clean versus unclean merges?
Corrected 2026-10-23 - see C3-B642-09; the original statements below are kept for history and are superseded where the correction says so. Unity scenes are a custom YAML subset with one document per object (--- !u!<class> &<fileID>) and in-file {fileID: n} references, floats optionally in IEEE 754 hex for lossless values; UnityYAMLMerge merges scenes and prefabs semantically, with Smart Merge Off/Premerge/Ask, a mergespecfile.txt fallback and documented Git/Mercurial/P4V/SVN configuration. Unmergeable cases and .meta/GUID handling are not described on these pages.
Unity scenes are a custom YAML subset with one document per object (--- !u!<class> &<fileID>) and in-file {fileID: n} references, floats optionally in IEEE 754 hex for lossless values; UnityYAMLMerge merges scenes and prefabs semantically, with Smart Merge Off/Premerge/Ask, a mergespecfile.txt fallback and documented Git/Mercurial/P4V/SVN configuration. Unmergeable cases and .meta/GUID handling are not described on these pages.
Curator correction 2026-10-23 (discovery audit record C3-B642-09; sources re-fetched 2026-10-23, excerpts re-located by curator GET): Problem. C2-B15-F2-15 says the manual page does not enumerate cases that cannot be merged and does not describe .meta handling. Conditions. Unity 6.6 (6000.6) Smart Merge page. Method. The page states UnityYAMLMerge merges scene, prefab and .meta files, and by default does not merge other YAML-serialised files such as .asset, .mat or .controller, which it passes to a fallback tool from mergespecfile.txt. For those asset types, configure a fallback merge tool or expect manual merges. Failure modes. Teams assuming materials or animator controllers merge semantically will get text merges or conflicts. Limitations. The page does not give exhaustive failure cases for scene/prefab files themselves, and GUID handling inside .meta is not explained. Version/date. Unity 6.6, fetched 2026-10-23.
Curator qualifications: Docs, issue and code-free pages read 2026-10-22; no merge attempted, no engine run. Ask-as-default wording not re-located; unversioned live pages (Unity 6.x).
Limitations: Docs, issue and code-free pages read 2026-10-22; no merge attempted, no engine run.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://docs.unity3d.com/Manual/SmartMerge.html",
"note": "Unity Manual: Smart merge (live); Unity Manual: Format of text serialized files (live)"
},
{
"url": "https://docs.unity3d.com/Manual/FormatDescription.html",
"note": "Unity Manual: Smart merge (live); Unity Manual: Format of text serialized files (live)"
}
]
}Evidence claims
- [sourced_fact] Unity scenes are a custom YAML subset with one document per object (--- !u!<class> &<fileID>) and in-file {fileID: n} references, floats optionally in IEEE 754 hex for lossless values; UnityYAMLMerge merges scenes and prefabs semantically, with Smart Merge Off/Premerge/Ask, a mergespecfile.txt fallback and documented Git/Mercurial/P4V/SVN configuration. Unmergeable cases and .meta/GUID handling are not described on these pages. · locator: Unity Manual: Smart merge (live); Unity Manual: Format of text serialized files (live) source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |