Version: 2022.2
Language : English
Overview of .NET in Unity
Stable scripting runtime: known limitations

.NET profile support

Unity supports two .NET profiles: .NET Standard and .NET Framework. Each profile provides a different set of APIs so that C# code can interact with .NET class libraries. The Api Compatibility Level property has two settings:

  • .NET Standard: .NET Standard 2.1, as published by the .NET Foundation.
  • .NET Framework 4.8, as published by Microsoft, plus additional APIs in .NET Standard 2.1.

By default, the Api compatibility Level is set to .NET Standard. To change the .NET profile, go to Edit > Project Settings > Player >Other settings. Under the Configuration heading, set Api Compatibility Level to the desired setting.

Cross-platform compatibility

If you need broad cross-platform compatibility, then set the Api Compatibility Level to .NET Standard. Where possible, Unity supports the APIs in the .NET Standard profile on all platforms. Although some platforms don’t fully support the .NET Standard profile, the .NET Framework profile is less suitable for cross-platform compatibility. The .NET Framework profile includes all APIs in the .NET Standard profile and additional APIs, some of which might work on few or no platforms.

Managed plug-ins

Managed plug-insA managed .NET assembly that is created with tools like Visual Studio for use in Unity. More info
See in Glossary
are .NET assemblies that are managed outside of Unity and compiled into dynamically linked libraries (DLLs). You can use managed plug-insA set of code created outside of Unity that creates functionality in Unity. There are two kinds of plug-ins you can use in Unity: Managed plug-ins (managed .NET assemblies created with tools like Visual Studio) and Native plug-ins (platform-specific native code libraries). More info
See in Glossary
in Unity with either the .NET Standard profile or the .NET Framework profile. The .NET profile of your Unity project determines the level of support for managed plug-ins that are compiled for different versions of .NET. The following table indicates the configurations that Unity supports:

Managed plug-in compilation target API Compatibility Level:
.NET Standard 2.1 .NET 4.x
.NET Standard (any version) Supported Supported
.NET Framework (any version) Limited support Supported
.NET Core (any version) Not Supported Not Supported

Support for managed plug-ins compiled for .NET Framework is limited when you use the .NET Standard profile in Unity. Any .NET Framework APIs that are also present in .NET Standard are supported. However, the .NET Framework API contains types and methods that are not available in the .NET Standard profile.

Transport Layer Security (TLS) 1.2

The UnityWebRequest API and all .NET Framework Web APIs fully support TLS 1.2 on all platforms except WebGLA JavaScript API that renders 2D and 3D graphics in a web browser. The Unity WebGL build option allows Unity to publish content as JavaScript programs which use HTML5 technologies and the WebGL rendering API to run Unity content in a web browser. More info
See in Glossary
. WebGL uses the security settings from the browser the application runs in and the web server instead. The platform-specific local certificate store automatically verifies TLS certificates if available. If access to the certificate store isn’t possible, Unity uses an embedded root certificate store.

  • 2018–03–15 Page amended

  • .NET profile support added in 2018.1 NewIn20181

Overview of .NET in Unity
Stable scripting runtime: known limitations