使用asm的好处
减少修改C#后unity编译dll的时间,对于项目中的C#代码越多效果越明显,比如我们的一个3dmmo项目是纯C#开发,每次修改C#后编译时间就要26s以上
在Unity2018.2中已支持asm
注意事项
引用报错
把第三方库或不常改动的代码放到 Standard Assets或Plugins 目录下,会最先编译,且不能依赖于其它脚本
注:建议每一个asm中的代码是独立的,不依赖于外部,但asm之间可以相互引用
脚本引用丢失
如果美术资源上绑定的MonoBehaviour脚本没有做成asm,而在客户端工程中此代码做成了asm则会出现问题,具体表现为gameobject上引用的脚本丢失,在代码中GetComponent无法查找到。
解决办法就是两个工程的做法需要一样。
注:我在unity2018.4.15中遇到这个问题
各版本Unity的差异
在Unity的Project视图中点右键 - Create,有以下选项
- Create - Assembly Definition
或
- Create - Assembly Definition ,创建出一个xx.asmdef,unity2018.4.15只有此项
- Create - Assembly Definition Reference,创建出一个xx.asmref,在unity2019.3.7有这项,用来asm之间相互引用