# Unity scripting symbol reference

> A reference of the predefined scripting symbols Unity provides.

## Platform symbols

Unity automatically defines certain symbols based on the authoring and build target platform. These are as follows:

| **Define**                      | **Function**                                                                                                                                                                                                                          |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `UNITY_EDITOR`                  | Scripting symbol to call Unity Editor scripts from your game code.                                                                                                                                                                    |
| `UNITY_EDITOR_WIN`              | Scripting symbol for Editor code on Windows.                                                                                                                                                                                          |
| `UNITY_EDITOR_OSX`              | Scripting symbol for Editor code in macOS.                                                                                                                                                                                            |
| `UNITY_EDITOR_LINUX`            | Scripting symbol for Editor code on Linux.                                                                                                                                                                                            |
| `UNITY_EMBEDDED_LINUX`          | Scripting symbol for embedded Linux.                                                                                                                                                                                                  |
| `UNITY_QNX`                     | Scripting symbol for QNX.                                                                                                                                                                                                             |
| `UNITY_STANDALONE_OSX`          | Scripting symbol to compile or execute code specifically for macOS (including Universal, PPC and Intel architectures).                                                                                                                |
| `UNITY_STANDALONE_WIN`          | Scripting symbol for compiling/executing code specifically for Windows standalone applications.                                                                                                                                       |
| `UNITY_STANDALONE_LINUX`        | Scripting symbol for compiling/executing code specifically for Linux standalone applications.                                                                                                                                         |
| `UNITY_STANDALONE`              | Scripting symbol for compiling/executing code for any standalone platform (Mac OS X, Windows or Linux).                                                                                                                               |
| `UNITY_SERVER`                  | Scripting symbol for compiling/executing code for a [dedicated server](/engine/7000.0/manual/platform-specific/dedicated-server.md) (macOS, Windows or Linux).                                                                        |
| `UNITY_IOS`                     | Scripting symbol for compiling/executing code for the iOS platform.                                                                                                                                                                   |
| `UNITY_ANDROID`                 | Scripting symbol for the Android platform.                                                                                                                                                                                            |
| `UNITY_TVOS`                    | Scripting symbol for the Apple TV platform.                                                                                                                                                                                           |
| `UNITY_VISIONOS`                | Scripting symbol for the VisionOS platform.                                                                                                                                                                                           |
| `UNITY_WSA`                     | Scripting symbol for Universal Windows Platform.                                                                                                                                                                                      |
| `UNITY_WSA_10_0`                | Scripting symbol for Universal Windows Platform.                                                                                                                                                                                      |
| `UNITY_WEBGL`                   | Scripting symbol for Web.                                                                                                                                                                                                             |
| `UNITY_ANALYTICS`               | Scripting symbol for calling Unity Analytics methods from your game code.                                                                                                                                                             |
| `UNITY_ASSERTIONS`              | Scripting symbol for assertions control process. `UNITY_ASSERTIONS` is always defined for Editor code and defined for builds with Debug and Checked managed code variants.                                                            |
| `UNITY_ENABLE_CHECKS`           | Scripting symbol for enabling safety checks. `UNITY_ENABLE_CHECKS` is always defined for Editor code and defined for builds with Debug and Checked managed code variants.                                                             |
| `UNITY_INCLUDE_INSTRUMENTATION` | Scripting symbol for enabling instrumentation code paths, such as the profiler. `UNITY_INCLUDE_INSTRUMENTATION` is always defined for Editor code and defined for builds with Debug, Checked, and Instrumented managed code variants. |

## Unity Editor version symbols

Unity automatically defines certain scripting symbols based on the version of the Unity Editor that you're currently using.

Given a version number `X.Y.Z` (for example, 6000.0.33), Unity exposes three global scripting symbols in the following formats: `UNITY_X`, `UNITY_X_Y` and `UNITY_X_Y_Z`.

Here is an example of scripting symbols exposed in Unity 6000.0.33:

| **Define**        | **Function**                                                                            |
| ----------------- | --------------------------------------------------------------------------------------- |
| `UNITY_6000`      | Scripting symbol for the release version of Unity 6, exposed in every 6000.Y.Z release. |
| `UNITY_6000_0`    | Scripting symbol for the major version of Unity 6.0, exposed in every 6000.0.Z release. |
| `UNITY_6000_0_33` | Scripting symbol for the minor version of Unity 6000.0.33.                              |

You can also compile code selectively based on the earliest version of Unity required to compile or execute a section of code snippet. Following the same version format describd previously (`X.Y`), Unity exposes one global `#define` in the format `UNITY_X_Y_OR_NEWER` (for example, `UNITY_6000_0_OR_NEWER`), that you can use for this purpose.

## Other symbols

The other symbols Unity defines are:

| **Define**                    | **Function**                                                                                                                                                                                                               |
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CSHARP_7_3_OR_NEWER`         | Defined when building scripts with support for C# 7.3 or newer.                                                                                                                                                            |
| `ENABLE_IL2CPP`               | Scripting back end #define for IL2CPP.                                                                                                                                                                                     |
| `ENABLE_VR`                   | Defined when the target build platform supports VR. Doesn't imply that VR is currently enabled or that the necessary plug-ins and packages needed to support VR are installed.                                             |
| `NET_2_0`                     | Defined when building scripts against .NET 2.0 API compatibility level on Mono and IL2CPP.                                                                                                                                 |
| `NET_2_0_SUBSET`              | Defined when building scripts against .NET 2.0 Subset API compatibility level on Mono and IL2CPP.                                                                                                                          |
| `NET_LEGACY`                  | Defined when building scripts against .NET 2.0 or .NET 2.0 Subset API compatibility level on Mono and IL2CPP.                                                                                                              |
| `NET_4_6`                     | Defined when building scripts against .NET 4.x API compatibility level on Mono and IL2CPP.                                                                                                                                 |
| `NET_STANDARD_2_0`            | Defined when building scripts against .NET Standard 2.0 API compatibility level on Mono and IL2CPP.                                                                                                                        |
| `NET_STANDARD_2_1`            | Defined when building scripts against .NET Standard 2.1 API compatibility level on Mono and IL2CPP.                                                                                                                        |
| `NET_STANDARD`                | Defined when building scripts against .NET Standard 2.1 API compatibility level on Mono and IL2CPP.                                                                                                                        |
| `NETSTANDARD2_1`              | Defined when building scripts against .NET Standard 2.1 API compatibility level on Mono and IL2CPP.                                                                                                                        |
| `NETSTANDARD`                 | Defined when building scripts against .NET Standard 2.1 API compatibility level on Mono and IL2CPP.                                                                                                                        |
| `ENABLE_WINMD_SUPPORT`        | Defined when Windows Runtime support is enabled on IL2CPP. For more information, refer to [WinRT API in C# scripts for UWP](/engine/7000.0/manual/platform-specific/windows-store/uwp-developing/windowsstore-scripts.md). |
| `ENABLE_INPUT_SYSTEM`         | Defined when the Input System package is enabled in Player Settings.                                                                                                                                                       |
| `ENABLE_LEGACY_INPUT_MANAGER` | Defined when the legacy Input Manager is enabled in Player Settings.                                                                                                                                                       |
| `UNITY_CLOUD_BUILD`           | Defined when the project is built with [Unity Build Automation](https://docs.unity.com/ugs/en-us/manual/devops/manual/unity-build-automation.md).                                                                          |

> **Note:**
>
> The `DEBUG` symbol is predefined in C#. Unity defines it for Editor code and for builds that use the Debug [managed code variant](/engine/7000.0/manual/building-and-publishing/managed-code-variants.md) or have **Script Debugging** enabled.

## Additional resources

* [Test your conditionally compiled code](/engine/7000.0/manual/programming-environment/script-compilation/conditional-compilation/test.md)
* [Custom scripting symbols](/engine/7000.0/manual/programming-environment/script-compilation/conditional-compilation/custom-scripting-symbols.md)
