Unity将我们的脚本编译为托管程序集,默认情况下,它将所有内容拆分为以下程序集:
- 标准资产和插件
- 标准资产和插件编辑器
- 资产
- 编辑
因此,将不经常更改且未被任何游戏代码引用的片段放入plugins文件夹已成为一种好习惯,以防止在主代码更改时重新编译它们。
但是现在我们终于获得了对该过程的更多控制,我们可以通过将程序集定义文件放入文件夹来设置自己的系统! 因此,现在-每当文件更改时-Unity将只知道重新编译这些文件所属的那些程序集(以及与这些程序集具有依赖性的程序集)。 减少编译时间的好方法,尤其是在大型项目中!
但是当然有一个缺点 :现在,我们需要仔细管理程序集之间的所有依赖关系。 那好吧。
如何
它的工作方式是我们创建一个程序集定义文件并将其放在文件夹中。 然后,Unity将把此文件夹的所有内容和所有子文件夹放入程序集。
如果将程序集定义文件放入子文件夹,它们将成为自己的程序集。

获得装配定义后,我们可以根据您的喜好进行设置。
我们可以添加Define Constraints (这意味着只有当给定的关键字在Scripting Define Symbols中时,此程序集才可用)。
我们可以设置程序集定义引用,以将我们的程序集连接到包含需要了解的内容的其他程序集。
我们可以选择装配支持的平台 。 (通常,我们的运行时内容将选中“ 任何平台” )

我们所有的自定义检查器和编辑器都需要放在单独的程序集中,该程序集仅支持编辑器平台,并引用包含它们所依赖的所有内容的运行时程序集 。
注意“ 任何平台”切换如何将“ 排除 平台”转换为 包括 平台 ! 因此,一个切换器会秘密地反转所有其他切换器的功能。 那里就是Unity的一些“冒险” UX设计!

到目前为止,您可能已经猜到了: 更多的坏消息 。 我们不能再简单地将Editor文件夹放到其他所有文件夹中,因为这意味着我们必须为其中的每个文件夹创建一个单独的程序集定义。 啊。
但是,我们可以以不同的方式构造整个项目,然后在根级别将其拆分为Runtime和Editor ,然后在内部为两者保留相同的文件夹结构。 不太好,但是我们只需要2个程序集定义文件即可,而不是10.000。 关于如何处理这种不便的问题,陪审团仍在讨论中……
哦,您问的是“ 自动引用”和“ 覆盖引用”的切换是什么? 好吧,你的猜测和我的一样。 我们将不得不等到Unity中的某个人从天而降,通过更新******文档来启发我们。