

NET developers have moved long past 2.0.Īs you can tell keeping runtime/framework numbers straight in your head can be a bit daunting.

This is the main reason the vast majority of C# and. NET 4.0 Runtime for a variety of reasons not worth getting into here. This can be read as " What libraries should my scripting have access to?" " What general backend to use?", and " What IL/Runtime version should we compile against?". You can see evidence of this in Unity's configuration panel, although Unity uses the word Runtime confusingly here. ILSpy is a great tool for exploring what the IL looks like for a. I'm glossing over the bulk of this here, but this explanation should suffice. Net 2.0 IL) reads the IL and executes the code. When you want to run this compiled code, the Mono Runtime (which understands.

dll file is produced containing IL, an Intermediate Language that is only understood by the. Mono lets Unity run on Mac and Linux, and is also the reason why standard assembly debugging tools you may have found before don't work on Unity. Mono is an open-source, cross-platform implementation of. Unity doesn't use Microsoft's implementation of.

Be responsible with how you use this information.įoreword Readers looking for a quick tutorial can skip this section and the next, however it really is necessary reading if you're looking for a better understanding of Unity.įirst things first, let's clarify a few things. Remember that any reverse-engineering of software can quickly enter a legal gray area. While quite a few of Unity's systems are written in C# (the UI system, most of the Editor), high-performance systems like the renderer and physics engine are in C++ and off limits for this method. We won't be able to debug into Unity's C++ implementation any time soon. This only allows us to debug parts of Unity that were written in C# (Managed assemblies).
