
使用程序集定义 - 2019.3
Tutorial
intermediate
+0XP
15 mins
(27)
Unity Technologies

在本教程中,我们将探讨程序集定义。程序集定义就是将代码分组为一个程序集。程序集可基于起源、用途和/或任何最适合您项目的标准来定义。程序集定义也与具体的平台密切相关。 默认情况下,Unity项目中的所有代码都属于一个程序集,称为“Assembly-CSharp”。
Languages available:
1. 介绍
如果您使用的是Unity 2019.2或更低版本,请单击此处。
在本教程中,我们将探讨程序集定义。程序集定义就是将代码分组为一个程序集。程序集可基于起源、用途和/或任何最适合您项目的标准来定义。程序集定义也与具体的平台密切相关。 默认情况下,Unity项目中的所有代码都属于一个程序集,称为“Assembly-CSharp”。
对程序集中的脚本所做的任何更改都将导致程序集中的所有代码进行重新编译,并导致程序集的重建。在每个脚本都是主程序集一部分的Unity项目中,这会减缓Unity项目的进度;随着脚本数量的增加,这种减缓程度还会进一步加剧。通过将代码分成若干程序集,可以极大地减少代码更新所带来的影响。
重建某个程序集后,任何依赖于该程序集的程序集也会重建,并且主程序集依赖于所有已定义的程序集。正是出于这个原因,如果您要分配代码,可将所有代码都分配到程序集。假设您有10个脚本,但只有三个脚本分配给自定义程序集。重建任何自定义程序集时,也将重建主程序集,这意味着这七个脚本都需要重新编译。
2. 创建程序集定义(并向其分配代码)
程序集定义作为文件夹中的资产存在,而文件夹中还包含属于该程序集的代码。任何不包含其自身程序集定义的子文件夹中的代码也属于程序集。
要创建程序集定义,请首先在项目中创建一个文件夹来保存程序集及相关代码。在文件夹中,在“Project”视图下,单击右键并选择
“Create”>“Assembly Definition”。
现在,该文件夹以及任何子文件夹中的所有代码都是此新程序集的一部分,而不属于默认的主程序集。如果以后决定将其中一个子文件夹扩展到其自身的程序集中,只需在该子文件夹中创建一个新的程序集定义即可。子文件夹中的所有代码以及其中的任何子文件夹都将属于新的程序集。
3. 编辑程序集定义
要编辑程序集定义,请在“Project”视图中将它选定,然后使用Inspector(图01),或者双击以在脚本编辑器中将其打开。
4. 程序集定义选项
一般设置
Allow ‘unsafe’ Code:选中该选项将包含标记为不安全的成员和方法。
Auto Referenced:选中该选项将使预定义的程序集自动引用此程序集定义。
Override References:通过选中该选项,可以指定希望此程序集定义引用的预编译程序集。不选中时,该程序集定义将引用所有可自动引用的预编译程序集。
No Engine References:选中该选项时,Unity在编译程序集时不会添加对Unity编辑器或Unity引擎的引用。
Define Constraints:包含“Define Constraint”时,将仅在约束返回“true”时才会构建程序集。在“Player”设置中按平台设置定义符号。要添加脚本定义符号,请从“Edit”下拉列表中选择“Project Settings”,在左侧的列中选择“Player”(图02),然后展开“Other Settings”下拉列表。
程序集定义引用
Use GUIDs:该选项允许您按其GUID而不是名称来包含程序集,从而使您能够对它们进行重命名而不必更改引用。选择+符号可添加程序集。
Platforms:您的程序集定义可以设置为仅在某些平台上构建。请注意,如果要在脚本编辑器而不是在Inspector中编辑.asmdef文件,则不能在同一程序集定义中同时使用includePlatforms和excludePlatforms关键字。
Version Defines:可以指定要包含的软件包和模块的版本。
除了平台定义之外,实际上一般不太可能需要编辑程序集定义文件。
5. 总结
对于管理项目中的依赖项和优化编译时间而言,程序集定义非常有用。