C# Differences from Unity and .NET

A game structure in Unity has its own particularities. It is composed by C# (or Javascript) in folders along with the assets for the images and models inside the game.

The C# code has its own particularities as in Visual Studio it is possible to search for compile-time errors, in Unity there is only one pause feature to inspect the code.
Almost the entire .NET API by the way is available in Unity, and the game engine still gives some particular classes that are useful for dealing with objects such as Quartenions (for positioning), Psychics Class, Animation Objects and utilities for getting touch and mouse input.

Mono is the base of Unity and as such, the open source .net version, the differences are related to operational system particularities.

Another thing to take notice in Unity is the fact that the C# Unity Code is not thread safe and thus does not allow for these kind of programming.

After a rapid test between, it was possible to see that objects are contained in the global scope of the application and not in namespaces; A serialize attribute is used to make the properties of a class available publicly and to be shown in the UI of the game engine.

The last but not least, Unity makes of C# classes using a number of special methods and sometimes using reflection, what is not expected by a beginner/intermediate.