Which Scripting Backends Does Unity Use to Compile?


Larry Thompson

Unity is a powerful game development engine that allows developers to create stunning and immersive games across various platforms. One of the key aspects of Unity is its ability to compile scripts written in different programming languages into executable code. In this article, we will explore the scripting backends that Unity uses for compilation.

What are Scripting Backends?

Scripting backends are the underlying technologies used by Unity to compile scripts into bytecode or machine code that can be executed by the Target platform. These backends provide a bridge between the high-level scripting languages used by developers and the low-level code understood by computers.


Mono is one of the primary scripting backends used by Unity. It is an open-source implementation of Microsoft’s .NET framework and provides a rich set of features for developing applications. Mono supports multiple programming languages, including C#, Boo, and JavaScript.

Fun fact: Mono was originally developed to bring .NET capabilities to platforms other than Windows.

Mono offers excellent performance and stability, making it a popular choice among Unity developers. It provides access to a vast ecosystem of libraries and tools, enabling developers to leverage existing .NET assets in their projects.


Introduced in Unity 5.0, IL2CPP (Intermediate Language To C++) is another scripting backend that Unity uses for compilation. Unlike Mono, which relies on Just-in-Time (JIT) compilation at runtime, IL2CPP performs Ahead-of-Time (AOT) compilation.

The IL2CPP backend converts the Intermediate Language (IL) code generated from scripts into C++ code, which is then compiled into platform-specific machine code. This approach offers several benefits, including improved runtime performance and enhanced security.

Note: IL2CPP is particularly useful when Targeting platforms with restricted dynamic code execution, such as consoles or mobile devices.


For developers Targeting web browsers, Unity provides the WebGL scripting backend. WebGL stands for Web Graphics Library and is a JavaScript API that enables high-performance 3D graphics within a web browser.

With the WebGL backend, Unity compiles scripts into JavaScript code that can be executed in the browser environment. This allows developers to create web-based games and interactive experiences without requiring any additional plugins or extensions.

Switching Between Scripting Backends

Unity offers the flexibility to switch between different scripting backends depending on your project’s requirements. This can be done through the Unity Editor’s Player Settings.

To change the scripting backend, navigate to “Edit” -> “Project Settings” -> “Player.” In the Inspector window, you will find a section labeled “Other Settings.” Here, you can select your desired scripting backend from a dropdown menu.

  • For Mono: Choose “.NET” from the dropdown menu.
  • For IL2CPP: Choose “IL2CPP” from the dropdown menu.
  • For WebGL: Choose “WebGL” from the dropdown menu.

Make sure to consider factors such as performance, platform compatibility, and specific feature requirements when selecting a scripting backend for your Unity project.

In Conclusion

Unity provides multiple scripting backends to compile scripts written in various programming languages. The Mono backend is widely used and offers great performance and compatibility with existing .NET assets.

IL2CPP provides improved runtime performance and security by performing Ahead-of-Time compilation. For web-based projects, Unity offers the WebGL backend, enabling developers to create browser-based games without additional plugins or extensions.

Remember to choose your scripting backend based on your project’s specific needs and Target platform requirements. With Unity’s versatile options, you can optimize your game development workflow and create amazing experiences across different platforms.

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy