Is Unity Engine written in Mono/C#? or C++

Is the core Unity Engine itself written in C++ or C#/Mono-based code?

The Unity runtime is written in C/C++. This runtime is used in any build you create using the editor - for webplayers and plugins it is installed separate from your build, whereas it is included in it for stand-alones and other platforms such as iPhone and Wii.

The editor is built on the Unity runtime and additionally includes editor-specific C/C++ binaries.

Wrapped around the Unity core is a layer which allows for .net access to core functionality. This layer is used for user scripting and for most of the editor UI.

Unity is written in C++, with the following exceptions:

  • we expose a .NET api so that you don't have to go trough the pain of writing your game in c++, but you can write it in Javascript or c# or boo.

  • The editor application's UI is written in C#, using mostly the same API that we expose to game developers. (We have access to a few API's that we don't expose (yet), but not that many)

This is also the reason that the answer to the question "Can I use UnityEngine.dll in some other c# project" is always no. There is hardly any functionality in UnityEngine.dll, the only thing it does is relay your c#/javascript calls into the C++ part of Unity. Without the C++ part there is nothing.

This can definitely be answered in more detail by one of the UT engineers, but as far as I know, it's a mixture of both. Certainly a lot of the core code is in c++, including the physics engine and sound engine, however as far as I understand, much (if not all) of the Editor UI itself, including the terrain engine and its editing tools, is written in c# using Unity's own editor scripting.

Wow why do you ask that?

OPS: Sorry for old threads …
I know because Unity 3D was written in C# Yes Why I recognized since Net Frameworks 4.6 If I forget to install before. I thought Unity 3D was embedded by mkbundle and cl Hahahaaaaaaa! I caught that. And Unity Editor looks common like without “Apply”, “Cancel” and “OK” That is why it was written by C# / Mono = CORRECT! Because I have checked UnityEngine.dll and UnityEditor.dll in ILSpy that is why all are written in C# / Mono!!!

You know it is 2. successor “WaveEngine” = / = “UnityEngine”

Now we have 2 different Game Engine written by C# / Mono. I have downloaded WaveEditor it is really cool so like Unity 3D with C# script.

That is why It is correct. No only C++/+

But Unity 3D’s Editor was embedded by mkbundle and cl with mono-2.0-sgen.dll and mono-2.0-boehm.dll I will check if Editor of Unity 3D has 2 requiered dlls or did you embed with BoxedApp Packer or Enigma Protector? :stuck_out_tongue: Ahaaaaa I see that ILSpy says Editor.exe has not managed assembly - I know that is correct if developer has both dlls of /MONO_INSTALLDIR/bin into own executable. Am I right?

Sorry for my bad English