Unity 2017.3出了個新功能,可以讓你的代碼分開編譯成多個dll霞溪,如果還不知道它能干嘛的朋友我大概總結(jié)一下就是:縮減編譯時間孵滞。更多信息請訪問官網(wǎng)
我一直在關(guān)注這個事情,這兩天終于上手嘗試了鸯匹,但是有個讓人不舒服的坑:
我們通常在開發(fā)的時候會寫一些編輯器腳本坊饶,只要它放在任意位置的Editor文件夾下就可以了,Unity在構(gòu)建的時候會聰明得忽略這些文件夾里面的腳本殴蓬。然而這個功能卻與新加入的asmdef文件相沖突匿级,通常使用在新建asmdef文件以后該文件夾的父文件夾以內(nèi)的任何腳本將會被編譯成一個獨立的dll,一個獨立的dll染厅!再也不會被智能地區(qū)分為編輯器程序集和非編輯器程序集了根蟹!
解決辦法有3個:
將所有散落在各處地Editor腳本統(tǒng)一歸到一個根文件夾一下,并在這個文件夾創(chuàng)建一個新的asmdef文件糟秘,最后勾選editor平臺简逮。這樣做的話對那些比較喜歡將editor腳本散落在各個相關(guān)文件周圍的人影響比較大(就是我),將這些腳本移出去以后可能就不再好找了尿赚。
將所有editor相關(guān)的腳本包上#if UNITY_EDITOR #endif代碼塊散庶,這樣一來構(gòu)建的時候這些代碼就自然被忽略了。缺點就是包代碼塊比移動文件要慢得多凌净。
等Unity開發(fā)團隊完善這個功能悲龟。
網(wǎng)絡(luò)上關(guān)于Assembly Definition Files的信息太少了,我在這里能丟出一點問題就丟出一點吧冰寻。