Unity 提供两种特殊的资源类型,即程序集定义和程序集引用,以帮助您将 脚本一段代码,使您能够创建自己的组件,触发游戏事件,随时间推移修改组件属性并以您喜欢的任何方式响应用户输入。 更多信息
参见 术语表 组织成程序集。
程序集是一个 C# 代码库,其中包含您的脚本定义的已编译类和结构体,以及对其他程序集的引用。有关 C# 中程序集的更多信息,请参考 .NET 中的程序集。
默认情况下,Unity 将几乎所有游戏脚本编译到一个名为 Assembly-CSharp.dll
的预定义程序集中。Unity 还创建了 一些较小的专门的预定义程序集。
这种安排对于小型项目来说是可以接受的,但随着项目中添加的代码越来越多,会有一些缺点。
通过定义程序集,您可以组织代码以促进模块化和可重用性。您定义的程序集中的脚本不再添加到默认程序集中,并且只能访问您其他自定义程序集中的脚本。
上面的图表说明了如何将项目中的代码拆分为多个程序集。由于 Main 引用 Stuff 而不是反过来,因此您知道对 Main 中的代码所做的任何更改都不会影响 Stuff 中的代码。同样,由于 Library 不依赖于任何其他程序集,因此您可以更轻松地在另一个项目中重用 Library 中的代码。
要将项目代码组织成程序集,请为每个所需的程序集创建一个文件夹,并将应属于每个程序集的脚本移至相关文件夹。然后 创建程序集定义资源 来指定程序集属性。
Unity 将包含程序集定义的文件夹中的所有脚本编译成一个程序集,使用资源中定义的名称和其他设置。程序集包括任何子文件夹中的脚本,除非子文件夹有自己的程序集定义或程序集引用资源。
要将来自非子文件夹的脚本包含在现有程序集中,请在非子文件夹中创建一个程序集引用资源,并将其设置为引用定义目标程序集的程序集定义资源。例如,您可以将项目中所有 Editor 文件夹中的脚本组合到它们自己的程序集中,无论这些文件夹位于何处。
Unity 按其依赖关系确定的顺序编译程序集。您无法指定编译发生的顺序。
要确定脚本所属的程序集,请在 **项目** 窗口中选择脚本文件,以在 **检查器一个 Unity 窗口,显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
参见 术语表** 窗口中查看其属性。程序集文件名和程序集定义(如果有)将显示在 **检查器** 的 **程序集信息** 部分中。
Unity 通常将名为 Editor
的文件夹中的任何脚本编译到预定义的 Assembly-CSharp-Editor
程序集中,无论这些脚本位于何处。但是,如果您在包含 Editor 文件夹的文件夹中创建程序集定义资源,则 Unity 不再将这些 Editor 脚本放入预定义的 Editor 程序集中。相反,它们将进入由您的程序集定义创建的新程序集中,这可能不是它们所属的位置。要管理 Editor
文件夹,您可以在每个 Editor
文件夹中创建程序集定义或引用资源,以将这些脚本放在一个或多个 Editor 程序集中。有关更多信息,请参考 为 Editor 代码创建程序集。