达哥深入解读,Unity 2020.1 不容错过的新功能
Unity本年度首个技术更迭版Unity 2020.1已于上周正式上线,对于想要尝试新技术的朋友,我们强烈推荐这一版;如果你在之前的创作中遇到了问题,也不妨看看此次更新是否已经解决;对于想要在最稳定的编辑器版本上开发项目的用户来说,Unity 2019 LTS仍是最好的选择。
大家好!我是达哥,本期我们来聊聊Unity 2020.1将会有哪些新的改进。
首先,再跟大家说明一下Unity版本号的变动。以往Unity的版号是从.1 .2 .3 最终到.4 LTS,我们在上一篇文章已提过(点击回看),从2020开始,版号规范将会缩短成.1 .2 然后.3 LTS,将不会再有.4这个版号,我们希望版号的时间表能更贴近年份。
2020.1有许多新功能,有些也是2019 LTS延伸过来并改进的功能。
本期视频已同步至B站,大家进入B站搜索“Unity官方”就可以看到啦~接下来我们就来看看Unity 2020.1有哪些改进吧!
资源导入流V2 Asset Import Pipeline
我们在去年重建了整个资源导入的流程,从2020.1开始这个V2版将会是默认值。
这个版本大大的改善了资源导入的时间,这意味着平台切换的速度也会大幅提升,新结构对于资源之间的依赖关系描述更靠谱,未来在打包时解决资源依赖的增减将会更容易。
Burst 编译器 1.3
文档编辑器集成 IDEs
Prefab编辑器改进
Prefab编辑器是在2018.3时发布的,它可以编辑一个Prefab预制件,但也因为是另开窗口的关系,当你想要和场景其他对象对照的时候不太方便。从2020.1开始编辑Prefab物件会默认在场景内编辑。场景内其他的对象会变成灰色,当然你也可以切换显示或隐藏。
脚本编辑相关
以往如果你想串行化一个通用型态栏位,必须先定义一个非通用型态子类(non-generic subclass)。从2020.1开始就不用这么麻烦,可以直接生成了。
以往的调试器Unity Profiler是集成在编辑器内的,这个调试器可以观看项目每一帧的消耗到底花在哪里,方便评估优化方案,但因为产出的报告也包含了Unity编辑器的消耗,数值混在一起反而容易造成判断错误。从2020.1开始这个Profiler可以单独开启,意味着整个调试流程就会移到Unity之外作为单独运行的程序,所产出的报告就会更贴近项目运行的真实消耗。
要运行这个程序可以从Window->Analysis->Profiler(StandaloneProcess)来开启。
现在你也可以通过Profiler的自定义API来把事件送到Profiler,生成一个可视化的图表,例如将Unity在Job系统多线程时的调度分配变成图表。从而显示在主线程等待多线程工作时的点,以图型的方式显示两者之间的关系。
在Unity内每个资源物件都会产生一个中继资料档Metadata, 现在可以通过Unity所提供的C# API来把里面的变量放到Profiler上,方便观察性能问题的可能性。这个功能也是预览,整个2020周期都会持续改进。
以前你只能通过Recorder API来获取CPU性能分析信息,并自己用UI显示出来。从2020.1开始,RecorderAPI开始支持从运行时获取GPU信息,方便分析渲染周期所造成的性能消耗。
会有这个功能是我们在开发SRP(Scriptable RenderPipeline就是新的渲染管线时的延伸产物)。
2D工具相关
新版的Sprite Atlas打包流程可以支持用脚本把纹理或是图片打包成图集了,这意味着未来项目的图集管理会方便很多,这功能目前是体验版。
2D的物理也做了许多改进,像是Rigidbody 2D的X轴和Y轴的约束器,现在不管锁定哪一轴,都已经优化到几乎0性能消耗。2D的碰撞在Simulation模式可以设置不同情境,比如物理的计算和渲染帧率同步,这意味着物理计算穿模问题会大大降低。
另外还有Edge Collider2D现在也能控制起点和终点,方便处理和其他碰撞体之间的表面连续碰撞计算。
2D骨骼动画的性能也有很大的提升,搭配前面介绍的Burst Compiler和Collections套件,就能够在运行动画变形时获得很大的性能提升。
跟UPR之前发布的改进一样,多摄像头堆叠是开发很重要的功能。
现在你可以在 SRP模式将多个镜头叠合成一个最终输出效果,用以处理像是小地图等等功能。
编辑器相关
首先是Package Manager的更新,2020.1的套件安装把预览版的开关放到Unity设置内,这样可以避免开发者在不知情的情况下安装了预览版的套件,说明和UI安排也都有改动。
以往的Unity版本中,监控编辑器的背景运行信息是不容易的。
新的背景工作窗口能追踪这些后台进程,看看Unity正在发生什么事情,也会提供相对应的API让程序人员做异步处理。我们还对所有的进度条管理做了一个改进,未来所有的运行任何需要停止操作编辑器的工作,会统一用一个显示窗口来显示目前正在执行的工作,并查看细节。
FBX仍然是Unity支持最齐全的模型格式之一,从2020.1开始做了几项修正:
Device Simulator 装置模拟器
美术工具相关
这是一个虚拟摄像头的套件,各种游戏或电影会用到的运镜,包含一些像是镜头抖动、自动跟随等等这个都能帮你搞定。我个人对这个系统的评价相当高。
网上也有相当多教程,基本上就是搞定运镜所有需要的功能。
Unity 2019开始导入的功能,以往我们把动作导入Unity之后发现有问题,通常都会请美术人员回到其他的DCC软件像是Maya, 3D Max去修改,有了这个功能之后,就能在Unity对动作添加设置约束器来微调动作。
例如:我有个手拿着武器的动作位置错了,这时我就可以把手的位置约束到刀柄就可以了。
你可以将骨骼动作烘焙起来并装到约束器上,这样可以对关键帧进行编辑;你也可以将约束后产生的动作烘焙到骨架上,运行时性能就不会消耗太大。
简单来说,未来你可以在Unity内微调各种动作了。
XR相关
01 激活XR设备的流程改进
我们调整了启用XR设备的菜单内容,现在比较直觉好用了。
图形相关
全新的光照设置文件,可以让你把不同光照设置存下来,未来你可以调好各种不同环境光照,比如阴天、晴天、雨天、室内、室外、夜晚等等,并在需要的时候加载。
以往的光照信息是跟着场景的,从2020开始,照明设置会变成独立的设置文件,存储预先计算的全局光照资料相关所有信息。
这样的好处是A场景的光照设置也能给B场景应用,未来在场景氛围的制作会更简单。
美术人员在拆UV纹理时很重要的一点,就是如何善用空间把纹理塞的越密越好,这在光照烘焙也是一样的道理。但是自动计算的光照图以往可能会算出非预期的结果,比如太多空白。
未来在Unity模型导入时,就是Model Importer会多一个Calculate的选项可以勾选,用意就是把这些模型先纳入光照贴图计算考虑,拆平纹理并计算边距,求得最少空白的纹理结果,也不会有UV重叠的问题。可以看到右图是有打开选项的结果,比左边的干净许多。
以上就是2020.1整理的功能说明,希望本期内容对你有所帮助。
为大家附上Unity 2020.1的下载链接,亲自上手试试吧:
https://unity.cn/releases
每一个“在看”,都是我们前进的动力