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