


If you notice something is out of date, please leave a comment, and I’ll be sure to update them. Note: Since there is quite a bit of competition in the version control business, the prices and plans below are likely to change. If you’re not already using some form of version control for your project, I strongly recommend giving at least one of these a try! In this article, I’ll review a few of the ones that I have used in the past and discuss the option I finally chose for my current project. We would like to hear about it if you find a bug in the C# reference source code, but please report it using the Unity Bug Reporter (describing the issue and possibly linking to the relevant lines or files in the reference source code), not by submitting a pull request on GitHub.There are several version control options available when working on Unity projects. We have neither the legal nor organizational frameworks in place to handle such PRs, not to mention that the mere act of preparing a PR is actually against the reference license (which, again, doesn’t permit modifications to the code).

We also do not take pull requests against the C# reference source code. Please consult the full license text for details before you get carried away. But the main engine will remain proprietary for the foreseeable future, and the C# reference source code is released under a license which only permits you to read the code, not modify it. We'd open source all of Unity today if we thought we could get away with it and still be in business tomorrow, and we do have a growing number of open source projects. (Sorry.) It's not that we don't like open source. We are not releasing Unity as open source. In the interest of forestalling misunderstandings and clickbait, it's worth taking a moment to emphasize what we're not doing. There was only one good solution that'd address both issues: namely for us to publish the original source code ourselves. On one hand, we were happy to see our users organize a useful service to the wider Unity community, but on the other, their actions were, strictly speaking, not legal (while our terms permit disassembly, they do not permit redistribution, because that's a legal can of worms). Truth be told, we had mixed feelings about this. To address the convenience issue, a number of community members went out of their way and provided GitHub repositories with the disassembled code. But there are two obvious disadvantages to disassembling: 1) while not hard to do, it's still rather inconvenient, and 2) the disassembled output doesn't give you the original comments and variable names, frustrating attempts to understand the code. NET assemblies, and our terms of service explicitly permits doing so, for the purpose of understanding or improving your projects made with Unity. It's always been possible to disassemble the Unity.
