Unity 程序集
Unity程序集
记录Unity程序集的相关知识,后续会不断的更新。
Unity 将几乎所有游戏脚本编译到预定义的程序集 Assembly-CSharp.dll 中,
这种安排对于小型项目来说是可以接受的,但是当您向项目添加更多代码时,它有一些缺点:
- 每次更改一个脚本时,Unity 都必须重新编译所有其他脚本,从而增加迭代代码更改的总体编译时间。
- 任何脚本都可以直接访问任何其他脚本中定义的类型,这可能会使重构和改进代码变得更加困难。
- 所有脚本都是针对所有平台编译的。
程序集拆分方案
常见的拆分方式有几种:
- Assembly-CSharp作为AOT程序集。剩余代码自己拆分为N个AOT程序集和M个热更新程序集。
- Assembly-CSharp作为热更新程序集。剩余代码自己拆分为N个AOT程序集和M个热更新程序集。
如果 你们项目把Assembly-CSharp作为AOT程序集,强烈建议关闭热更新程序集的
auto reference
选项。因为Assembly-CSharp是最顶层assembly,它会自动引用剩余所有assembly,很容易就出现失误引用热更新程序集的情
包含程序集定义的文件夹中的脚本(包括任何子文件夹中的脚本(除非这些文件夹包含其自己的程序集定义或引用资源))会编译到新程序集中并从它们以前的程序集中移除。
关于拓展编辑器的代码,也不用必须放到Editor文件夹中,可以在脚本所在的文件夹下面 创建一个程序集,然后在程序集设置中取消勾选所有平台,只勾选 Editor
引用另外一个程序集
AA想调用BB的方法,必须引用BB所在的程序集