# Unity 脚本符号参考

> A reference of the predefined scripting symbols Unity provides.

## 平台符号##platform-symbols

Unity 根据制作和构建目标平台自动定义某些符号。如下所示：

| **Define**                   | **功能**                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **UNITY\_EDITOR**            | 用于从游戏代码中调用 Unity 编辑器脚本的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                 |
| **UNITY\_EDITOR\_WIN**       | 用于 Windows 中编辑器代码的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                      |
| **UNITY\_EDITOR\_OSX**       | 用于 macOS 上编辑器代码的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                        |
| **UNITY\_EDITOR\_LINUX**     | 用于 Linux 上编辑器代码的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                        |
| **UNITY\_EMBEDDED\_LINUX**   | 用于嵌入式 Linux 的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                           |
| **UNITY\_QNX**               | 用于 QNX 的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                                |
| **UNITY\_STANDALONE\_OSX**   | 用于专门为 macOS（包括 Universal、PPC 和 Intel 架构）编译或执行代码的脚本符号。                                                                                                                                                                                                                                                                                                                                                                        |
| **UNITY\_STANDALONE\_WIN**   | 用于专门为 Windows 独立平台应用程序编译/执行代码的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                          |
| **UNITY\_STANDALONE\_LINUX** | 用于专门为 Linux 独立平台应用程序编译/执行代码的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                            |
| **UNITY\_STANDALONE**        | 用于为任何独立平台（Mac OS X、Windows 或 Linux）编译/执行代码的脚本符号。                                                                                                                                                                                                                                                                                                                                                                             |
| **UNITY\_SERVER**            | 用于为[专用服务器](/engine/6000.0/manual/platform-specific/dedicated-server.md)（macOS、Windows 或 Linux）编译/执行代码的脚本符号。                                                                                                                                                                                                                                                                                                                  |
| **UNITY\_IOS**               | 用于为 iOS 平台编译/执行代码的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                      |
| **UNITY\_ANDROID**           | 用于 Android 平台的播放器设置。                                                                                                                                                                                                                                                                                                                                                                                                         |
| **UNITY\_TVOS**              | 用于 Apple TV 平台的播放器设置。                                                                                                                                                                                                                                                                                                                                                                                                        |
| **UNITY\_VISIONOS**          | 用于 VisionOS 平台的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                         |
| **UNITY\_WSA**               | 用于通用 Windows 平台的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                        |
| **UNITY\_WSA\_10\_0**        | 用于通用 Windows 平台的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                        |
| **UNITY\_WEBGL**             | 用于 Web 的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                                |
| **UNITY\_ANALYTICS**         | 用于从游戏代码中调用 Unity Analytics 方法的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                          |
| **UNITY\_ASSERTIONS**        | 用于断言控制过程的脚本符号。                                                                                                                                                                                                                                                                                                                                                                                                               |
| **UNITY\_64**                | 64 位平台的脚本符号。实际上，**不应使用**此脚本符号，因为它不适用于所有 64 位架构。并且在给定平台上，不同的 CPU 架构可能共享相同的编译程序集。要基于架构有条件地执行代码，请使用标准 `if` 语句来检查 [IntPtr.Size](https://learn.microsoft.com/en-us/dotnet/api/system.intptr.size?view=net-8.0)，在 32 位进程中其值为 `4`，在 64 位进程中其值为 `8`。有关示例，参见[指令的替代方案](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/conditional-compilation/platform-dependent-compilation.md#ConditionalExecution)。 |

## Unity 编辑器版本符号##unity-editor-version-symbols

Unity 根据您当前使用的 Unity 编辑器版本自动定义某些脚本符号。

如果版本号为 **X.Y.Z**（例如，2019.4.14），Unity 将使用以下格式公开三个全局脚本符号：**UNITY\_X**、**UNITY\_X\_Y** 和 **UNITY\_X\_Y\_Z**。

以下是 Unity 2019.4.14 中公开的脚本符号的示例：

| **Define**             | **功能**                                        |
| ---------------------- | --------------------------------------------- |
| **UNITY\_2019**        | 用于 Unity 2019 发行版的脚本符号，在每个 2019.Y.Z 版本中公开。    |
| **UNITY\_2019\_4**     | 用于 Unity 2019.4 主要版本的脚本符号，在每个 2019.4.Z 版本中公开。 |
| **UNITY\_2019\_4\_14** | 用于 Unity 2019.4.14 次要版本的脚本符号。                 |

也可根据编译或执行部分代码片段所需的最早 Unity 版本来有选择地编译代码。如果采用与上面相同的版本格式 (**X.Y**)，Unity 将以 **UNITY\_X\_Y\_OR\_NEWER** 格式公开一个可用于此目的的全局 `#define`。

## 其他符号##other-symbols

Unity 定义的其他符号包括：

| **Define**                         | **功能**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **CSHARP\_7\_3\_OR\_NEWER**        | 在构建支持 C# 7.3 或更高版本的脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| **ENABLE\_MONO**                   | 用于 Mono 的脚本后端 #define。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **ENABLE\_IL2CPP**                 | 用于 IL2CPP 的脚本后端 #define。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| **ENABLE\_VR**                     | 在目标构建平台支持 VR 时定义。并不意味着当前已启用 VR，也不意味着支持 VR 所需的必要插件和包已安装。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **NET\_2\_0**                      | 在 Mono 和 IL2CPP 上根据 .NET 2.0 API 兼容性级别构建脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **NET\_2\_0\_SUBSET**              | 在 Mono 和 IL2CPP 上根据 .NET 2.0 Subset API 兼容性级别构建脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **NET\_LEGACY**                    | 在 Mono 和 IL2CPP 上根据 .NET 2.0 或 .NET 2.0 Subset API 兼容性级别构建脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| **NET\_4\_6**                      | 在 Mono 和 IL2CPP 上根据 .NET 4.x API 兼容性级别构建脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **NET\_STANDARD\_2\_0**            | 在 Mono 和 IL2CPP 上根据 .NET 标准 2.0 API 兼容性级别构建脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **NET\_STANDARD\_2\_1**            | 在 Mono 和 IL2CPP 上根据 .NET 标准 2.1 API 兼容性级别构建脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **NET\_STANDARD**                  | 在 Mono 和 IL2CPP 上根据 .NET 标准 2.1 API 兼容性级别构建脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **NETSTANDARD2\_1**                | 在 Mono 和 IL2CPP 上根据 .NET 标准 2.1 API 兼容性级别构建脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **NETSTANDARD**                    | 在 Mono 和 IL2CPP 上根据 .NET 标准 2.1 API 兼容性级别构建脚本时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **ENABLE\_WINMD\_SUPPORT**         | 在 IL2CPP 上启用 Windows 运行时支持时定义。有关更多信息，请参阅 [Windows 运行时支持](/engine/6000.0/manual/scripting/compilation-and-code-reload/backends/il2cpp/il2cpp-windows-runtime-support.md)。                                                                                                                                                                                                                                                                                                                                                            |
| **ENABLE\_INPUT\_SYSTEM**          | 在 Player Settings 中启用 Input System 包时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| **ENABLE\_LEGACY\_INPUT\_MANAGER** | 在 Player Settings 中启用旧版 Input Manager 时定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| **DEVELOPMENT\_BUILD**             | 确定脚本何时在启用了 **Development Build** 选项的情况下构建的播放器中运行。此定义仅反映了在构建时是否启用了开发构建选项。要了解脚本是否在开发构建模式下运行，请使用 [Debug.isDebugBuild](/engine/6000.0/script-reference/unity-engine/debug/is-debug-build.md)。`__DEVELOPMENT\_BUILD__` 不足以确定当前是否在开发构建中运行，因为大多数平台允许在不重新构建项目的情况下在开发构建和非开发构建之间切换。但是，在某些平台上，Unity 不支持在编辑器中在开发构建和非开发构建之间切换，并且需要在构建完成后进行切换。例如，在 Windows 上，可以选择**创建 Visual Studio 解决方案**选项，从而选择是否在 Visual Studio 中使用开发构建或非开发构建。在 Visual Studio 中切换不会重新编译脚本，因此不会重新评估脚本定义。还可以通过将游戏构建中的 `UnityPlayer.dll` 替换为来自开发构建的版本，来将最终游戏构建切换为开发构建，从而调试实时游戏构建。 |
| **UNITY\_CLOUD\_BUILD**            | 已在使用 [Unity Build Automation](https://docs.unity.com/ugs/en-us/manual/devops/manual/unity-build-automation.md) 构建项目时定义。                                                                                                                                                                                                                                                                                                                                                                                                             |

**注意**：`DEBUG` 符号在 C# 中是预定义的，在 Unity 中使用指令 `#if DEBUG` 等同于 `#if UNITY_EDITOR || DEVELOPMENT_BUILD`

## 其他资源##additional-resources

* [测试有条件编译的代码](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/conditional-compilation/test.md)
* [自定义脚本符号](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/conditional-compilation/custom-scripting-symbols.md)
