您可以使用预处理器符号来控制是否编译程序集并将程序集包含在应用程序的构建中(包括编辑器中的播放模式)。您可以使用程序集定义选项中的“定义约束”列表来指定使用程序集必须定义哪些符号。
选择程序集的程序集定义,以在 检查器Unity 窗口,显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。更多信息
参见 词汇表 中查看其属性。
在“定义约束”部分中,单击“+”按钮以将新符号添加到约束列表中。
输入符号名称。
您可以通过在名称前面加上感叹号来否定符号。例如,约束 !UNITY_WEBGL
在未定义 UNITY_WEBGL
时将包含程序集。
单击“应用”。
您可以使用以下符号作为约束
在 脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性并以您喜欢的任何方式响应用户输入。更多信息
参见 词汇表 中定义的符号在确定约束是否已满足时不会被考虑。
有关更多信息,请参见 定义约束。
如果您需要根据项目是否使用 Unity 或包的特定版本在程序集中编译不同的代码,则可以将条目添加到“版本定义”列表中。此列表指定符号应在何时定义的规则。对于版本号,您可以指定一个逻辑表达式,该表达式计算为特定版本或版本范围。
要条件性地定义符号
选择程序集的程序集定义资源,以在“检查器”中查看其属性。
在“版本定义”部分中,单击“+”按钮以将条目添加到列表中。
设置属性
表达式结果显示表达式计算到的版本。如果结果显示为“无效”,则表达式语法不正确。
以下示例定义符号 USE_TIMELINE_1_3
(如果项目使用 Timeline 1.3),并定义 USE_NEW_APIS
(如果项目在 Unity 2021.2.0a7 或更高版本中打开)
单击“应用”。
在程序集定义中定义的符号仅在为该定义创建的程序集中的脚本范围内有效。
请注意,您可以使用使用“版本定义”列表定义的符号作为“定义约束”。因此,您可以指定程序集仅在项目中也安装了给定包的特定版本时才使用。
您可以使用表达式来指定确切的版本或版本范围。版本定义表达式使用数学范围表示法。
方括号“[]”表示范围包括端点
[1.3,3.4.1]
计算为1.3.0 <= x <= 3.4.1
圆括号“()”表示范围不包括端点
(1.3.0,3.4)
计算为1.3.0 < x < 3.4.0
您可以在单个表达式中混合这两种范围类型
[1.1,3.4)
计算为1.1.0 <= x < 3.4.0
(0.2.4,5.6.2-preview.2]
计算为0.2.4 < x <= 5.6.2.-preview.2
您可以在方括号中使用单个版本指示符来指定确切的版本
[2.4.5]
计算为x = 2.4.5
作为快捷方式,您可以输入单个版本而没有范围括号,以指示表达式包括该版本或更高版本
2.1.0-preview.7
计算为x >= 2.1.0-preview.7
注意:表达式中不允许使用空格。不支持通配符。
当前版本的 Unity(以及所有支持程序集定义的版本)使用具有三个部分的版本指示符:MAJOR.MINOR.REVISION,例如 2017.4.25f1
、2018.4.29f1
和 2019.4.7f1
。
2022.x.z
及更早版本的发行年份,或从 Unity 6 (6000.x.z) 开始的主要技术版本。发行类型指示符的比较方式如下
a < b < f = c < p < x
换句话说,alpha 版本被认为早于 beta 版本,beta 版本早于常规 (f) 或中国 (c) 版本。修补程序版本始终晚于具有相同修订号的常规或中国版本,而实验版本晚于任何其他发行类型。请注意,实验版本在末尾不使用增量编号。
Unity 版本号允许在 REVISION 组件之后添加后缀,例如 2019.3.0f11-Sunflower
。在比较版本时,任何后缀都将被忽略。
例如,以下表达式包括 Unity 的任何 2017 或 2018 版本,但不包括 2019 或更高版本中的任何版本
[2017,2019)
包和模块版本指示符具有四个部分,遵循 语义版本控制 格式:MAJOR.MINOR.PATCH-LABEL。前三个部分始终是数字,但标签是一个字符串。预览中的 Unity 包使用字符串 preview
或 preview.n
,其中 n > 0
。有关包版本号的更多信息,请参见 包版本控制。
例如,以下表达式包括所有 MAJOR.MINOR 版本介于 3.2 和 6.1(含)之间的包版本
[3.2,6.1]