使用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之間相互引用
