程序集与脚本
在unity里新建一个工程,然后创建一个脚本Test.cs

我们可以看到所属程序集为Assembly-CSharp.dll,意思是Test.cs脚本会被编译到Assembly-CSharp.dll文件里
那么我们怎样自定义程序集呢?
在assets面板下:右键>create>Assembly Definition
取名为test

我们就能发现Assembly-CSharp.dll消失了,取而代之的是Test.dll

然后我们创建文件夹Test与Learn
然后把脚本Test.cs与程序集Test放Test文件
然后在Learn创建脚本Learn.cs与程序集Learn
我们发现:Learn.cs在程序集Learn.dll里

同样:Test.cs在程序集Test.dll里

但是当我们吧Test里的程序集删除后

发现Test.cs又再次属于程序及Assembly-CSharp.dll了
然后我们在根目录创建Base程序集

发现Learn.cs依旧属于Learn.dll程序集,而Test.cs属于Base.dll程序集


所以结论是:
unity里的脚本属于同文件夹下的程序集,如果没有程序集,就属于父节点,一直到根目录都没有就属于默认的Assembly-CSharp.dll
程序集的引用
当我们想在Test里调用Learn时,发现找寻不到,因为他们所属不同的程序集,那么如何调用呢?
在程序集里添加对程序集的引用就可以了

网友评论