Version: 6000.3
语言: 中文
Unity 脚本符号参考
测试条件编译

自定义脚本符号

除了 Unity 的内置脚本符号外,您还可以定义自己的自定义脚本符号。定义自定义脚本符号的位置决定了它们的适用范围。您可以在以下位置定义自定义符号:

  • 资产文件,用于适用于项目中所有编辑器和播放器代码的符号,无论活动构建配置文件为目标平台创建构建时要使用的一组可自定义配置设置。更多信息
    请参阅术语表
    .
  • 玩家设置设置,可让您为 Unity 构建的最终游戏设置各种特定于玩家的选项。更多信息
    请参阅术语表
    ,用于在给定平台或其构建配置文件之一处于活动状态时适用于所有编辑器和播放器代码的符号。
  • 构建配置文件,用于在给定构建配置文件处于活动状态时适用于所有编辑器和播放器代码的符号。
  • 从代码中,适用于活动平台或单个播放器构建的符号,具体取决于所使用的 API。

整个项目的自定义符号

您可以定义适用于具有响应文件资产的整个项目的自定义脚本符号,如下所示:

  1. 将文件命名csc.rsp并将其放置在项目的 Assets 文件夹的根目录中。
  2. 在以 开头的行上定义脚本符号-define:,后跟一个或多个分号分隔的脚本符号。

Unity 在启动时读取此文件,并在编译任何代码之前应用它。例如,如果包含单行-define:UNITY_DEBUG;UNITY_TEST在你的csc.rsp文件、符号UNITY_DEBUGUNITY_TEST作为所有 C# 的全局定义脚本符号包含在内脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
在项目中。

注意:对.rsp文件在 Unity 重新编译脚本之前不会生效。您可以通过更新或重新导入单个脚本文件来触发重新编译。

平台的自定义符号

您可以定义特定于平台的自定义脚本符号,如下所示:

  1. 打开播放器设置
  2. 导航到 其他设置(Other Settings) > 脚本编译(Script Compilation) 部分中的脚本定义符号(Scripting Define Symbols) 列表。
  3. 通过选择 + 按钮并在文本字段中键入符号的名称,将新的脚本符号添加到列表中。使用 - 按钮删除现有列表项。
  4. 完成列表编辑后,选择“应用”以应用更改。Unity 使用新符号重新编译项目中的脚本。

注意:“复制定义”按钮将当前自定义脚本符号集从列表中作为一串分号分隔的值复制到剪贴板中。

构建配置文件的自定义符号

您可以为构建配置文件定义自定义脚本符号,如下所示:

  1. “构建配置文件”窗口中选择要为其定义符号的构建配置文件。
  2. 导航到 构建数据(Build Data) 部分中的 脚本定义(Scripting Defines) 列表。
  3. 通过选择 + 按钮并在文本字段中键入符号的名称,将新的脚本符号添加到列表中。使用 - 按钮删除现有列表项。对列表的修改会自动保存并应用。

注意:您可以使用-activeBuildProfile 命令行参数,使指定的生成配置文件及其自定义脚本符号从启动时适用。

从代码定义的自定义符号

您可以使用以下 API 来定义脚本符号:

BuildPlayerOptions.extraScriptingDefinesBuild.Player.ScriptCompilationSettings-extraScriptDefines仅适用于播放器构建,因此在定义适用于编辑器脚本的脚本符号时,请使用PlayerSettings.SetScriptingDefineSymbols.这相当于在播放器设置中配置特定于平台的脚本符号的代码。

重要提示:从代码创建的符号SetScriptingDefineSymbols在编辑器重新获得控制权并重新编译脚本之前不会生效。例如,如果使用SetScriptingDefineSymbols,然后调用BuildPipeline.BuildPlayer在下一行,在上一行中创建的新交易品种将不会生效。在这种情况下,作为BuildPlayer执行运行时没有新符号,并且播放器可能无法按预期构建。

批处理模式下的自定义符号

当编辑器以批处理模式运行时,没有触发脚本重新编译的机制。如果您需要在以批处理模式运行的编辑器中定义特定符号,则必须从启动时使用 csc.rsp 资源文件就位。

脚本符号继承

如果您在多个位置定义自定义脚本符号,Unity 会将适用于当前构建配置的所有符号相加。符号从每个作用域继承,而不是被覆盖,如下所示:项目范围的符号(从csc.rsp) + 特定于平台的符号(来自播放器设置)+ 构建配置文件符号(来自构建数据)。仅当平台和构建配置文件符号与活动构建配置文件匹配时,才会包括它们。

例如,假设项目在以下位置定义了以下自定义脚本符号:

位置 定义的符号
csc.rsp SYMBOL_A
Windows 播放器设置 SYMBOL_B
Windows构建配置文件1 SYMBOL_C
WindowsBuildProfile2 SYMBOL_D

鉴于此示例配置,下表显示了当不同的构建配置文件处于活动状态时,编辑器和播放器代码的哪些符号处于活动状态:

活动生成配置文件 活动符号
人造人 SYMBOL_A
窗户 SYMBOL_A,SYMBOL_B
Windows构建配置文件1 SYMBOL_A,SYMBOL_B,SYMBOL_C
WindowsBuildProfile2 SYMBOL_A,SYMBOL_B,SYMBOL_D

您可以使用#if指令。有关详细信息,请参阅测试条件编译

其他资源

Unity 脚本符号参考
测试条件编译