2017年5月21日

優化 Unity 的編譯時間

先講測試結果,進行簡單的檔案搬移使得編譯時間減少了25%,
從原本的16秒變成12秒。
因為某些原因的關係這個結果還不是最好的結果,這個後續會說明。

做法:

1. 觀察所需的編譯時間,可以透過 compile-time-tracker 。
2. 搬移不常改動的 C# 檔案搬到 Assets/Plugins 或 Assets/Standard Assets 資料夾。
例如:第三方的插件 ( NGUI ),某某框架之類的。

原因:

利用 Unity 第一階段 (Phase 1)編譯工作範圍內的腳本,如果沒有改變的話,不會重新編譯。
https://docs.unity3d.com/Manual/ScriptCompileOrderFolders.html

注意事項:

1. 根據參考資料 3 此優化技巧可能在某些 Unity 版本失效,我的版本是 Unity 5.3.6p7。
2. 在  Assets/Plugins 與 Assets/Standard Assets 內的程式碼無法引用外部的程式碼。

後記:

因為注意事項第二條的關係,專案內開發框架因為有互相引用的關係,導致無法進行簡單的搬移,必須對程式碼進行調整。

參考資料:

1. http://qiankanglai.me/2016/11/27/unity-compiler/
2. http://forum.china.unity3d.com/thread-13028-1-1.html
3. https://medium.com/@darrentsung/the-clocks-ticking-how-to-optimize-compile-time-in-unity-45d1f200572b