Lots of impressive headline features. DirectX 11, detailed animation system, Linux support. The trouble is, these come at the expense of the basics. Not so impressive is that the only supported method for sharing code between projects is copy and paste . The engine is six years old. I'm not kidding. Unfortunately, frustrations like that are common. I adopted Unity expecting to be there for the next few years at least…
Version control on Unity isn't as bad as you describe. Go to Edit > Project Settings > Editor, then set Version Control to Metafiles. If you have a Pro license, also set Asset Serialization Mode to Force Text. The downside is that this litters your project with .meta files, but that lets you work with external version control pretty easily. Edit: You should also exclude the Library folder from your VCS, because with…
The problem is that there is no method to build libraries and share them between multiple projects, since all the code needs to be under the Assets folder of each project. There is no support for classpaths.
If you update the code in one project, you have to copy the file to the other. Or have some equivalent method of doing so outside of Unity.
Prior to Unity 4, people were using symlinks to accomplish this, but Unity 4 disabled them on Windows to match the OS X behavior (this is described in the post I linked).