Wednesday, March 06, 2013


Using Version Control when learning Unity3D

I've been looking for what I think may be the next up and coming browser plug-in and all around multi-platform framework. I got started learning Unity3D during the end of January 2013. Using the last version of Unity 3.x, Unity 3.5.7. There are lots of great tutorials out there, from the corny tornado twins (, to the overly detailed The biggest hurtle for me was figuring out source control. What files should be versioned and which shouldn't.
  1. The most important thing to do is to turn on Meta Files at the start of a new project. Inside Unity3D go to Edit->Project Settings->Editor and change Mode from "Disabled" to "Meta Files". This allows Unity to no longer relay on any of the contents of a Unity3D projects Library folder.
  2. If everyone on your team has Unity Pro licence, you should also set Asset Serialization to "Force Text". This stores asset files in an xml form. This allows a source control conflict of asset files to be resolvable.
  3. Unity3D does some unexpected things like re-generating the VisualStudio *.sln and *.csproj files. I'm not sure when the re-generation happens, but the key take-away was that *.sln and *.csproj related to the unity project should not be under version control. However, *.sln and *.csproj files not connected to Unity, like a Unit Test project, should still be under version control.
Here's the .gitignore I'm currently using for Unity3D projects:
### start Unity3D .gitignore
# The Unity3D /Library/* ignore requires Meta Files to be turned on (Enable Meta files in Edit->Project Settings->Editor)
# ref:

# VisualStudio specific files that are generated by Unity3D
# Include other VisualStudio projects like Unit Test projects by uncommenting and customizing the next line

#pidb files are only for code completion caching data according to:
### end Unity3D .gitignore

Labels: ,

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]