在一个项目中会存在多个程序集,例如SDK集合、热更集合、插件集合、主集合等,如果未自定义程序集,修改其中一个集合的脚本后Unity再次编译,这时Unity会将所有集合都编译一遍,时间的浪费是我们所不希望的。当我们为每一个集合都定义程序集后,修改脚本只会编译对应的程序集。
通过在Unity中点击:Assets >Create >Assembly Definition菜单创建。该文件的扩展名是.asmdef。
需要注意的是程序集名与文件名无关,真正有关联关系的是Inspector面板中Name对应的名称
该程序集我们还可以在解决方案中观察到
程序集依赖关系成树状,一旦确立依赖关系,低层级的程序集则无法调用高层级程序集里的类和方法。
这里我设立了三个程序集:Unity.Hotfix、Unity.Model、Unity.ThirdParty;
他们之间的依赖关系如下
这样在Hotfix程序集里可以调用Model与ThirdParty程序集中的脚本,但是Model无法调用Hotfix程序集中的脚本
程序集会管理它当前所在文件夹和子文件夹中的脚本。
如果一个脚本当前文件夹中定义了一个程序集,它的父文件夹中也定义了一个程序集,该脚本会被归纳到它当前文件夹的程序集中
在平台中可以设置程序集编译平台
这样可以使某些程序集避免在一些特殊平台下被编译,常见的例如我们希望我们的Edtor程序集或热更资源程序集只在编辑器下被编译,那么我们就可以在平台设置中只勾选Editor
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)