接下来的几天呢,大智作为探路者带你一块探索一下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,里面有示例和教程文档,安装入口如下图所示:
image.wf
各个IDE集成支持移到了packages中目前官方支持3个IDE,Visual Studio、Visual Studio Code和Rider。