Greetings fellow Unity developers,
As you may have come across, text diffing and merging Unity scenes is not so easy. Having a Unity scene be diff-able and merge-able is necessary for multiple team members to be able to edit it at the same time without losing changes. Most teams either deal with this by letting only team team member at a time edit the scene file, or by buying Unity Pro ($1500).
Even with Edit->Project Settings->Editor->Asset Serialization set to “Force Text”, here’s the type of diff you can expect after changing a single value in your Unity scene. The scrollbar shows how long the text is!:
Some solutions to this have been made, and sold on the Unity Asset Store. My team tried two of these solutions. However, neither of them just worked out of the box, and they were both extremely clunky. It would have been more work to get these solutions to work for our team.
So, I figured out how to fix the problem with a simple Python script. The Unity text file has lots of entities, which look like this:
The script was surprisingly easy to write. Since it’s in Python, it works on both Windows and Mac, which is important since some of our team works on each platform.
Hope this tip works for you!
Chief Technical Officer