洪流學堂,讓你快人幾步。你好,我是你的技術探路者鄭洪智,你可以叫我大智。
接下來的幾天呢,大智作爲探路者帶你一塊探索一下Unity2020.1裏面有什麼好玩的東西。
這一次咱們來看看腳本編程方面的更新。主要包含以下幾個方面:
- 代碼默認將是Release模式,提高編輯器性能
- 支持泛型類型序列化
- Code Coverage代碼覆蓋率(Preview)
- 各個IDE集成支持移到了packages中
代碼默認將是Release模式,提高編輯器性能
從Unity2020.1開始,Unity編輯器代碼的編譯模式默認是Release模式,可以提高性能,但是無法連接調試器(debugger),最主要是沒辦法斷點調試。
那如何設置可以連接調試器,斷點調試呢?
可以在Unity窗口的右下角進行切換到Debug模式,如下圖:
切換到Debug模式後就可以連接調試器,進行斷點調試了。
支持泛型類型序列化
之前,如果你想要一個泛型類型作爲SerializeField,你需要定義一個非泛型的子類。
Unity2020.1移除了這個限制,你可以直接使用泛型類型作爲SerializeField。
那泛型類型在Inspector上會如何顯示呢?
答案是:會根據具體泛型類型顯示在Inspector上。
如上面的代碼中泛型實例類型是string,Inspector上也會顯示string的輸入框。
Code Coverage代碼覆蓋率(Preview)
Code Coverage這個預覽包,可以在運行Test Runner的時候自動幫你統計代碼覆蓋率。
在Unity2020之後,啓用預覽包移到了菜單欄Edit > Project Settings > Package Manager中的Enable Preview Packages。如下圖:
之後就可以在Package Manager中安裝這個包了。
安裝好以後可以在菜單欄Window > Generic > Code Coverage打開。
接着需要在Edit > Preferences > General中勾選Enable Code Coverage。啓用後編輯器的開銷會增加、性能會稍有降低,建議在不使用時禁用功能。勾選後包便能訪問Mono暴露的覆蓋數據的接口。接着,需要重啓Unity。
單次測試完成時,包會生成一份HTML報告,其中展示了總代碼行覆蓋率和每個類單獨的覆蓋情況。
HTML報告中最爲重要的數值是覆蓋行數,表示了測試中所覆蓋的代碼量。比如,數值爲75%表明有四分之一的代碼行沒有測試到。數值在計算時會考慮到哪些代碼行可以被測試到。
Coverage History中的圖表(截圖中的紅線)表明了每次項目測試時的覆蓋率,覆蓋率越高越好。如果有所下跌,可以編寫更多的測試用例來提升覆蓋率。
Code Coverage目前支持EditMode(編輯模式)和PlayMode(運行模式)測試,可以跟蹤長期的覆蓋量,可與Test Runner一同使用。如果沒有任何測試用例,也可以使用Coverage Recording(覆蓋記錄)功能記錄覆蓋數據。
如果你想跟深入瞭解Code Coverage這個包,可以在Package Manager中導入Samples,裏面有示例和教程文檔,安裝入口如下圖所示:
各個IDE集成支持移到了packages中
目前官方支持3個IDE,Visual Studio、Visual Studio Code和Rider。
擴展閱讀
【擴展學習】在洪流學堂公衆號回覆
2020.1
可以閱讀本系列所有文章,還有不定時的直播通知哦!
呼~ 沒講清楚的地方歡迎評論,咱們一起探索。
我是大智(微信:zhz11235),你的技術探路者,下次見!
別走!點贊,收藏哦!
好,你可以走了。