Unity 2020.2 beta 现已开放
Unity 2020.2 beta现已开放测试,在Unity 2020.2中,我们依旧将重心放在了引擎的性能表现、稳定性和工作流改善上。
首先,再跟大家说明一下Unity版本号的变动。以往Unity的版号是从.1 .2 .3 最终到.4 LTS,从2020开始,版号规范将会缩短成.1 .2 然后.3 LTS,将不会再有.4这个版号,我们希望版号的时间表能更贴近年份。
快来参与2020.2 beta测试,与我们畅谈你对新工具的想法吧。
Unity 2020 LTS及2021年发展计划
在深入介绍beta新内容之前,我们先来概括下未来的安排:
对于想等beta测试结束后再使用的用户,我们将在今年晚些时候发布完整版的Unity 2020.2,届时引擎将达到TECH版的稳定水平。
Unity 2020 LTS版本目前计划于2021年3月发布,引擎将整合所有2020.1及2020.2中更新的新功能特性、改进和修复,最大化稳定性,保证项目的开发安全无虞。
在今年往后,我们将改进工作方式:精选出主要内容,进一步提高内容质量;投入更多的人力来打磨引擎的功能与内容。
Unity 2020.2新功能介绍
01 编程工具与性能提升
随着项目变得复杂,代码改动后的编译时间也会随之增加,影响到团队的工作流畅度和生产力。在Unity 2020.2中,我们设计了几种优化编译时间的功能。
在编辑器编译脚本时,我们在编译管线中使用了Roslyn引用集,防止公有元数据集未改动时系统重新编译多余的asmdef引用;比如,如果用户仅修改了私有方法或字段,则只有修改后的程序集会被再编译。Roslyn分析器允许用户在后台运行C#代码分析,分析过程并不会中断代码的更迭,并且还能通过命令行同时运行。你可以在Unity项目中使用Roslyn分析器来检查代码的语言风格、质量等问题。在2020.2的C#编译流程中还新添了一项“-deterministic(决定性)”编译选项。然而功能并不支持带通配符(*)的AssemblyVersion。强行使用时系统会弹出错误信息,详细地说明如何禁用决定性编译。
编辑器迭代分析器(Editor Iteration Profiler,EIP)可以在域重新加载时(如进入运行模式、编译脚本时)找出代码的运行瓶颈。分析器仍是一种实验性功能,可作为测试包使用:请遵循该说明来下载试用,再与我们反馈。
Root命名空间是一种asmdef检视器中的全新字段,会在Unity、Visual Studio和Rider中创建新脚本时自动加入脚本。
IL2CPP中的零更改重建。在编辑内容时,如果仅更改材质、预制件着色器等,代码并没有改变,则.NET程序集经IL2CPP到C++的转化会被省略,进一步改善美术制作体验、加快项目迭代。
IL2CPP玩家版本构建时间也有相应的改进。.NET程序集到C++文件的转化流程在过去一直是单线程的。而在2020.2中,负责转化的应用程序(il2cpp.exe)将利用多核处理器,减少IL2CPP玩家版本的构建时间。
C# 8支持。2020.2将支持除默认接口方法外所有C# 8的新功能特性与改进。
Time.deltaTime稳定性改进。帧时间计算现在更为稳定,物体在运行时的移动更加顺滑、帧率更加稳定。时间改进目前支持iOS、macOS、PS4、Switch、tvOS、UWP、Windows和Xbox One,安卓、Vulkan和XR上的Windows/Linux的支持也即将上线。
Unity Linker可执行裁剪托管代码的静态分析,还能识别出各种属性(Attribute),如果不能识别依赖则允许用户添加注解。在2020.2中,新的API更新将让工具可以兼容Mono IL Linker。自2020.1开始,部分简单反射模式可被自动检测,省去使用link.xml文件的必要。
Unity安全模式(Safe Mode)在2020.2 beta中正式推出,带编译错误的项目在打开时,引擎会有提示——如果编辑器启动时出现了编译错误,用户将被提示进入安全模式。该模式专为解决代码错误而设计,帮助项目快速恢复正常状态,不必再重复导入项目资源(资产),从而简化、加快项目升级到新引擎版本的过程,减少库文件夹出现导入错误的可能,让大型项目的制作更加轻松。
我们将当前编辑器状态作为运行时API暴露了出来,让用户可在玩家版本内查看如内存、渲染等性能数据,在目标设备上以平视显示(HUD)展示出项目运行的性能,或者根据需求制作性能工具。
我们还添加了一系列可视化改进。包括将现成或用户生成的数据在Profiler窗口以图表形式显示出来;用事件流程(Flow Events)图表将Profiler时间轴中一系列任务的依赖显示出来,协助识别程序执行的时机。
最后我们作了一系列核心功能的改进,包括:
l Camera.main在此前的调用会耗费大量性能。而在此次优化后,带有主摄像机标签的对象会被归到一个专门的对象列表中,调用可几乎瞬时完成。
l 导入时展开模型UV一直以来是一项耗时、独立的过程,而现在整个流程将实时进行,运行速度要快上50倍。
l 小工具渲染,包括普通编辑工具和光照探针工具的渲染,目前会更加快速。
l 嵌套预制件(Nested Prefab)加载现在经过优化速度要快上20倍。
02 编辑器与团队工作流
工作流改进是今年发展计划的支柱之一。Unity一直关注着用户的反馈与需求,力图改进各个制作团队的日常编辑器使用体验。我们还邀请了许多测试者来抢先尝试最新的项目本地化工具。
本地化(Localization)资源包已经开放测试,多种本地化工具可为项目添加多语言支持和其他地区文化相关的音频、纹理等资源。要想使用该预览包,请在Package Manager的“Add package from git URL(使用Git URL添加资源包)”中输入com.unity.localization来下载安装,或遵循该说明文档,通过编辑项目manifest文件来下载使用。
编辑器包本地化(实验性),Unity的使用者及开发者可为资源包和自定义工具添加日语、汉语、简体中文和繁体中文的支持。安装语言包模块后功能会自动启用,接着就能为想要支持的语言或内容创建词典(使用GNU gettext编写的PO文件)。
关节体(PhysX Articulation Body)组件改进。ArticulationBody层级现在可以通过普通关节与Rigidbody层级相连,连接后两者由迭代式解算器解算,作用力会自动作用到两者之上。该功能在机器人模拟和物理模拟游戏中最为实用。此外,支持物理性反向动力学(IK)的新API也已向外公开。
资源数据库(Asset Database)一致性检测。功能可以检查导入器导入的资源及依赖与原资源是否一致。要想启用功能,可以手动重新导入或使用命令行。
Unity Accelerator更新。用户现在可以将Accelerator内容权限集中到一个新规则表中,而Accelerator则能储存根据规则储存缓存的镜像。
预制件支持 AssetPostprocessor。在使用了OnPostprocessPrefab时,后处理器可以修改预制件。而所有预制件中的对象都会被添加DontSaveInEditor标签,防止改动应用到原预制件上。
预制件导入流程有了一系列的改动,可以实现更高的精确度、性能、荷载、易存储性等等。至于脚本依赖,带有MonoBehaviours的预制件现在会与脚本保持同步,在编译出错时也不会失去引用。
Unity Hub 2.4.0版本改进了部分用户体验,包括清晰的消息弹出,及项目管理、下载、编辑器与模块工作流。同时有更多的可下载模板加入了Hub,让游戏开发的学习更加有趣。
Package Manager——条目分类的用户体验与使用改进。一个新的对话框会告知用户有新的分类注册表被添加进了项目。项目中的所有分类注册表可在Project Settings中管理(添加/移除注册表或类别)。用户可根据制作者过滤出“Unity Registry”或“My Registry”,方便在源注册表中浏览、搜索特定资源包。
快速搜索(Quick Search) 2.0增加了更多的搜索关键字,还添加了自动补全搜索名称的功能。场景搜索现在不局限于打开的场景,所有项目中的场景与预制件都能同时被搜索。所有内容都会在后台添加标签,用户可在Index Manager中设定添加标签时的具体行为。
最后,Unity 2020.2还带有如下使用体验改进:
l 检视器中的数组与列表可重新排序。用户可添加[NonReorderable]属性禁用功能。
l 处理场景移动/旋转/缩放的命令行现在更长,并且可以修改。
l 2DArray和3D纹理的导入管线现在可直接导入“手翻书”式图组/3D纹理,无需再编写自定义C#代码。
l 层级视图改进:
新“Create Empty Parent(创建空父对象)”选项
预制件的版本状态会被显示出来
在创建新对象时,默认进入重命名模式
在层级视图中,若想某个对象标记为“默认父对象”,则新资源在拖入场景时会自动归入该对象下
l Mesh检视器现在能可视化blend shape。
l 多个预制件可同时拖到一个场景中。
l 检视器属性复制/粘贴功能支持用户自定义的C#类型。
l Project Settings中的编程#define指令现在作为数组显示。
l 在已选中对象上使用Frame Selected功能,镜头会聚焦到对象的顶点上。
l Project窗口中资源的重命名与移动可以撤销。
l GameObject检视器会将对象计数显示在名称字段旁。
03 美术工具
在Unity 2020.2中,我们升级了已有工作流,提升了美术工具的用户体验,推进节点式开发环境的规范化,提高渲染管线的成熟度,继续将重心放在用户体验的改进上。
Shader Graph 10.0包含了几个技术美术工作流的新功能改进:提升了Graph(图表)编辑器的性能;Graph的终端现在为一个功能块(Master堆栈)的模块化集合,而不是原先的单个Master节点,方便单个图表在多种着色器模型,如从Lit或Hair之间转换;Graph检视器可将图表中Master节点和其他节点的设定集中到一处显示,使用者还可在检视器中控制图表的活跃目标对象和着色模型;图表现在会表明那些功能和节点与当前所选的设定兼容。注意在2020.2中,已有的Graph会自动升级成Master堆栈。请查看Shader Graph资源包升级指南,来进一步了解这些工作流改进。
VFX Graph也有了一系列的功能特性更新与改进。新的Output Event可让用户使用新的C#委托,以Spawn Event为标准,来同步光效、音效、物理互动及游戏运行。Static Mesh Sampling(静态网格采样)允许直接从网格生成粒子;Multi-Mesh(多重网格)功能允许将最多4块网格合为同一个网格输出,方便为每个粒子添加不同的变化;Per Particle LOD(粒子LOD)功能可根据网格输出的屏幕大小来设定特效的LOD,优化特效性能;新的视锥剔除功能可舍弃屏幕外渲染的粒子效果。用户可在Preferences>Visual Effect设置中勾选启用这些隐藏的实验性功能。
在全局光照方面,我们增加了GPU与CPU光照贴图的光弹射上限,还使用了蓝噪声采样(Blue Noise Sampling)来提升光照贴图的质量。GPU光照贴图在烘焙大型光照贴图时,如果内存过小,则会禁用渐进更新,于内部自动地限制内存使用,达到降低内存占用的目的。如此一来,大型项目现在也能使用GPU光照贴图器。
2020.2同时还带来了一系列针对电影、多媒体影音娱乐行业的改进:
l 录制API可在编辑器内自动将视频录制到一个叠加式整合系统中,团队成员可在更新资源后自动生成一个新版本的视频。
l ProRes编码可在Windows和Mac编辑器中输出高质量、易编辑的视频文件,功能位于Unity Recorder中。
l AOV Recorder现在有更多的通道(动态矢量、光照通道)、压缩后的EXR和高分辨率的输出(仅支持HDRP)。用户可使用功能将渲染通道导出到Nuke、Da Vinci Resolve等外部软件中用于影像合成。
UI Tollkit作为一个完整的核心功能添加到了编辑器中,用户可在Package Manager的“(使用Git URL添加资源包Add package from git URL)”中输入com.unity.ui来安装预览版,使用新的运行时UI功能。UI Toolkit整合了TextMesh Pro的核心文本技术用以渲染字体,并且未来将添加对新Input System、Sprite和SpriteAtalas(精灵图集)的支持。我们在Game视图中添加了UXML和USS的“live reload(实时重载)”功能。
UIBuilder已作为预览包开放。我们改进了资源包的使用体验,添加了诸如多选、在画布中直接编辑文本等功能。多个UI文件的编辑也有了改进,用户可在场景内或单独编写子文档。此外,启用Editor Extension Authoring(编辑器拓展设定)可以设定编辑器内的各种控制选项。
04 可编程渲染管线
我们将不断改进可编程渲染管线(Scriptable Render Pipeline,SRP),提高图像资源包的质量,同时采取部分用户反馈。
URP中的屏幕空间环境光遮蔽,图像源自Synty Studios
通用渲染管线(Universal Render Pipeline,URP)目前已进入10版本,而此次更新的全新功能让管线更为接近内置渲染管线。Screen Space Ambient Occlusion(屏幕空间环境光遮蔽,SSAO)可提升场景中的环境光照质量,根据表面周围的环境、表面对环境光照的曝光情况来求出亮度/暗度的近似值;用户现在可通过剔除未使用着色器来降低构建版本的大小、加快加载时间;URP的Lit Shader(受光着色器)可接收额外的表面输入,如细节表面、细节法线表面、高度贴图和并行贴图。新的Complex Lit着色器现在支持Clear Coat(光滑表面)贴图,可用于模拟类似车辆喷漆一类的材质。
高清渲染管线(High Definition Render Pipeline,HDRP)版本10的更新包括:光照调试工具lighting debug view modes(光照调试视图)可以将场景中的各个光照分离显示出来;贴花系统的改进,全新的Decal layer(贴画层)功能可在层级系统中,指定特定贴花影响特定材质;Path tracing(路径追踪)现在支持fog absorption(雾气吸收效果)和Subsurface Scattering(次表面散射),可让类似皮肤一类的有机材质显得平滑、自然,而不是粗糙、具有塑料感。HDRP还新加了一个景深模式,可生成带路径、高质量失焦模糊等其他效果的图像。光线追踪也有了许多改进。HDRP光线追踪现在有一套透明效果的回退方法,使得透明GameObject能在有/无递归渲染和散射的情况下都能保持图像连贯性。此次更新中HDRP支持透明和透光GameObject的彩色光线追踪阴影。HDRP的光线追踪反射(RTR)现在支持透明材质,可用于类似窗户或水体这类透明表面。请在说明文档中了解HDRP的新功能与改进。
路径追踪次表面散射
05 2D工具
除了稳定性与性能改进,最新的2D工具和编辑器2D制作体验还有一系列的改进。
流线化菜单。2D对象和资源创建的菜单条目现在集中到一个专门的上级菜单下,部分新功能也加入到了菜单中。制作2D项目时的用户体验会更为方便、快速。
2D默认资源改进。此前,新的2D GameObject以一个小像素精灵表示,用户需要修改精灵才能使用对象。现在,创建2D GameObject时用户可在集中原始形状中选择,形状带有相匹配的2D碰撞体、预先设定好的2D物理、瓦片贴图和精灵形状——所有这些都能改善游戏的原型搭建流程和资源的整体使用体验。
Tilemap Extras预览资源包内有一系列取自2D Extras GitHub代码库的精选工具,可通过Package Manager安装使用。用户可通过URL轻松获取工具,而我们则会不断在包中添加新的改动。工具包括动画图块、适用于各种瓦片贴图类型的基准图块(Rule Tile)和不同的笔刷。更多详情请在Tilemap Extras说明文档中查看。
2D IK加入2D Animation 5.0。在新版的2D Animation资源包中,2D IK不再是一个单独的资源包。改进包括可隐藏的小工具、更好的IK把手可视化图像。在2D骨骼动画中,2D IK可以自动计算出骨链的位置与转向,让骨骼随父对象逼真地运动。
06 平台支持
我们与各个关键平台紧密合作,确保项目的开发,虚拟现实、移动端、网页端、桌面及主机端的体验构建可以在未来的平台上达到最优。
原生Apple Silicon支持。在2020.2中,Unity实现了对Apple Silicon的原生支持,用户可针对下一代Mac硬件构建单独的玩家版本。
Unity在Apple Silicon上运行
适应性性能调节(Adaptive Performance) 2.0版全新的演示项目展示了包括可变刷新率(Variable Refresh Rate)、性能调节(Scalers)和适应性性能模拟器(Adaptive Performance Simulator)等拓展功能在任意设备上的性能调节表现。
Input System 1.1包含了一系列的修复和改进:键位绑定现在可以以JSON文件(详情请查看RebindSaveLoad.cs示例脚本)来储存/加载;控制器布局现在可预先编译,极大减少初始化时间与垃圾数据收集(GC)的运行成本。
07 Unity 2020.2 beta:软件服务
Unity 分发平台(Unity Distribution Portal, UDP)可允许用户在一个控制中心将游戏分发到多个应用商店(点击回看)。在Unity 2020.2中,UDP资源包从UnityIAP中独立了出来,无论项目是否整合了UnityIAP,用户都能将UDP资源包添加到项目中,并且两者之间不再会有冲突。请访问Service窗口来启用UDP。
Game Foundation是我们预建的可拓展内购(IAP)系统。本次的更新包括快速添加物品栏、货币、物品购买和游戏商店的功能,以及一系列开箱即用的常见系统与可定制预制件。
快加入Unity 2020.2 beta内测吧!
来源:Unity官方