Unity-平臺(tái)相關(guān)的編譯腳本編譯和程序集定義文件特殊文件夾和腳本編譯順序
Unity 保留了一些項(xiàng)目文件夾名稱來指示內(nèi)容具有特殊用途。其中一些文件夾會(huì)影響腳本編譯的順序。這些文件夾名稱為:
Assets
Editor
Editor default resources
Gizmos
Plugins
Resources
Standard Assets
StreamingAssets
請參閱特殊文件夾名稱了解有關(guān)這些文件夾的更多信息。
預(yù)定義的程序集
Unity 根據(jù)腳本文件在項(xiàng)目文件夾結(jié)構(gòu)中的位置,以四個(gè)不同的階段編譯腳本。Unity 為每個(gè)階段創(chuàng)建一個(gè)單獨(dú)的 CSharp 項(xiàng)目文件 (.csproj) 和一個(gè)預(yù)定義的程序集。(如果沒有符合編譯階段的腳本,Unity 不會(huì)創(chuàng)建相應(yīng)的項(xiàng)目文件或程序集。)
當(dāng)腳本引用在不同階段編譯的類(因此位于不同的程序集中)時(shí),編譯順序很重要?;疽?guī)則是無法引用在當(dāng)前階段之后的階段編譯的任何內(nèi)容。在當(dāng)前階段或早期階段編譯的所有內(nèi)容則是完全可用的。
編譯階段如下:
階段????????????????????????????????????程序集名稱????????????????????????????????????????????????????腳本文件
1? ? Assembly-CSharp-firstpass????????????名為 Standard Assets、Pro Standard Assets 和 Plugins 的文件夾中的運(yùn)行時(shí)腳本。
2? ? Assembly-CSharp-Editor-firstpass??名為 Editor 的文件夾(位于名為 Standard Assets、Pro Standard Assets 和 Plugins 的頂級(jí)文件夾中的任意位置)中的 Editor 腳本。
3? ? Assembly-CSharp??????????????????????????不在名為 Editor 的文件夾中的所有其他腳本。
4? ? Assembly-CSharp-Editor???????????????其余所有腳本(位于名為 Editor 的文件夾中的腳本)。
注意:Standard Assets 僅在?Assets?根文件夾中有效。
您可以創(chuàng)建程序集定義文件,從而使用自己的程序集來組織項(xiàng)目中的腳本。定義自己的程序集可以減少在進(jìn)行不相關(guān)的代碼更改時(shí)需要重新編譯的代碼量,并可提供對(duì)其他程序集的依賴性的更多控制。請參閱腳本編譯 - 程序集定義文件以了解更多信息。