Unity Assembly definitions如何使用?|介绍

Assembly definitions

程序集是一个C#代码库,它包含由脚本定义的已编译类和结构,还定义了对其他程序集的引用。

默认情况下,Unity将几乎所有的游戏脚本编译到Assembly-CSharp.dll。

但是当你向项目中添加更多代码时,会有一些缺点:

  • 每当你改变一个脚本时,Unity就必须重新编译所有其他脚本,这增加了整体编译时间。
  • 任何脚本都可以直接访问任何其他脚本中定义的类型,这使得重构和改进代码变得更加困难。
  • 所有脚本都是为所有平台编译的。

通过Assembly definitions,你可以组织代码以促进模块化和可重用性。你为项目定义的程序集中的脚本将不再添加到默认程序集中,并且只能访问你指定的其他程序集中的脚本。

创建方法:

可以通过Assets > Create > Assembly Definition菜单创建。该文件的扩展名是.asmdef。

打开VS可以看到asmdef文件后会将当前所在文件夹以下的所有脚本从Assembly-CSharp.dll抽离出来然后单独编译到一个dll中。 这样我们每次编译只会编译脚本对应的dll,从而节省编译时间。

设置平台:

我们为了节省编译时间,只需要为Editor平台应用Assembly Definition。

在Exclude Platforms勾选想要排除的平台。


设置仅编辑器模式下使用Assembly Definition:

勾选TestAssemblies

TestAssemblies 指仅在编辑器中应用Assembly Definition,且如果没有被外部引用,打包后就会剥离掉这个dll。


程序集引用:


在Refrerences绑定另外一个Assembly即可。

作者:Miracle
来源:麦瑞克博客
链接:https://www.unitymake.com/archives/unity/1419
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
分享
打赏
海报
Unity Assembly definitions如何使用?|介绍
Assembly definitions 程序集是一个C#代码库,它包含由脚本定义的已编译类和结构,还定义了对其他程序集的引用。 默认情况下,Unity将几乎所有的游戏脚本编译……
<<上一篇
下一篇>>
文章目录
关闭
目 录