Unity 2020.3 是 LTS 版本,包含 2020.1 和 2020.2 版本发布的功能,提供 2 年的支持。有关更多信息以及其他可用的 LTS 安装程序,请参阅 LTS 发布页面。
要了解有关 Unity 2020 版本的新功能、更改和改进的更多信息,请参阅:
2020.3 发行说明
2020.2 发行说明
2020.1 发行说明
如果要将现有项目从 Unity 早期版本升级,请阅读升级指南以了解项目可能受到的影响。以下是 LTS 特定的升级指南:
了解自 2019 LTS 以来 Unity 2020 LTS 中的变化,并查看有关受影响区域的文档。
为了获得更大的灵活性,您现在可以在不离开场景上下文的情况下进入预制件模式,并在背景灰显的情况下编辑预制件。您仍然可以选择单独编辑预制件。
Package Manager 进行了一些设计更新,包括新的用户界面 (UI) 图像、改进的布局以及更好地区分当前安装的包和可用更新的信息。
新的轴转换设置让您可以解决轴导入问题,而不必在 3D 建模软件中重新打开网格。 您现在可以导入来自 SketchUp 的对象的自定义属性。在导入 PNG 文件时,您可以选择忽略 Gamma 校正(这有助于在不同平台间保持颜色一致性)。
资源导入管线 v2 现在是默认资源管线。
通过专属 Inspector 窗口可以更轻松地查看选定游戏对象的 Inspector 详细信息。要为选定游戏对象或资源打开浮动 Inspector 窗口,请右键单击并选择 Properties。您可以同时打开多个专属 Inspector 窗口,以便在对场景进行更改时评估或引用多个对象。 您还可以选择重点显示游戏对象的特定组件(只需要较少的屏幕空间)。
开发者现在可以使用新的 Progress API 和后台任务窗口公开长时间运行的异步操作。这些工具协同工作以在其自己的编辑器窗口中显示任务进度。您可以监视子任务、按状态筛选任务、查看全局进度等。
Unity Accelerator 的本地管理员控制面板让您可以根据团队的需求配置该工具、评估其运行状况以及访问日志和指标。
Addressable Asset System 提供了一种通过“地址”加载资源的便利方式。它通过简化内容包创建和部署来处理资源管理开销。我们向该包中添加了几个新功能(包括 Unity 编辑器中的重要用户体验更新),以改进开发工作流程,例如子对象支持和运行时目录更新。
Unity Hub 版本 2.4.2 包含用于管理项目、下载、Unity 编辑器版本和模块的改进工作流程。
QuickSearch 2.0 现已可用,其搜索条件标记更多,可以在键入查询时根据上下文提供选择。现在还可以一次性搜索项目的所有场景和预制件,而不仅限于打开的场景。
借助现已结束预览阶段的编辑器协程,您可以在编辑器中开始执行迭代器方法,这类似于在运行时处理 MonoBehaviour 脚本中的协程的方式。
现在,可以在性能分析器窗口中添加图表,以获得现有或用户生成的性能分析器统计信息的更多性能洞见和上下文。
NonReorderable
属性禁用此功能。现在,您可以使用摄像机堆叠将多个摄像机的输出分层并创建单一组合输出。这让您能够创建 2D 用户界面 (UI) 中的 3D 模型或车辆驾驶舱之类的效果。
光照设置资源让用户可以同时更改多个场景使用的设置。也就是说,对多个属性的修改可以在项目中快速传播;对于可能需要在多个场景中进行全局更改的光照美术师来说,这是一个极为便利的功能。例如,现在当您在预览和生产质量的烘焙之间切换时,可以更快地在光照设置之间交换。
现在,设置光照贴图模型变得更为简单。 为了简化在导入时查找打包边距所需大小的过程,Unity 现在在模型导入器中提供了 Calculate 边距方法。在这里,您可以指定将使用模型的最小光照贴图分辨率和最小比例。Unity 的解包程序根据该输入计算所需的打包边距,以避免光照贴图重叠。
我们为 CPU 和 GPU 光照贴图实现了更好的去相关方法。 这些去相关改进默认处于激活状态,不需要任何用户输入。最终将生成更快收敛至无噪点状态并且伪像更少的光照贴图。
要限制计算每条光线所花费的时间,光照贴图需要知道一些结束每条光线路径的条件。例如,您可以严格限制允许每条光线反射的次数。要进一步优化该过程,您可以使用一种称为“俄罗斯轮盘”的技术(随机选择要提前结束的路径)。 此方法考虑了路径对场景中全局光照的意义。每当光线遇黑暗表面反射时,提前结束该路径的几率就会增加。以这种方式剔除光线可减少总烘焙时间,而对光照质量的影响通常很小。 剪影以前仅限于实时光照。Unity 现在在 CPU 和 GPU 光照贴图中支持剪影。这意味着烘焙和混合模式光照还将在衰减直接和间接光照时考虑剪影的影响。
参与者和接收者 Scene 视图会显示哪些对象在对场景中的全局光照 (GI) 产生影响。这也让您能够更轻松地了解是否从光照贴图或光照探针接收到了 GI。
通用渲染管线 (URP) 的新功能使之与内置渲染管线更接近。屏幕空间环境光遮挡 (SSAO) 可改进场景中环境光照的视觉质量。可以通过新的复杂光照着色器降低构建数据大小并缩短加载时间。可以使用透明涂层贴图来模拟和模仿汽车油漆等材质。
高清渲染管线 (HDRP) 现在包含可帮助调试光照的更好工具、对贴花系统的改进,路径追踪支持有机材质的雾吸收和子面散射,以及一种可用于生成高质量散焦模糊等路径追踪图像的新景深模式。 提供了一个新 HDRP 示例场景,它是高端图形项目的极好起点。该模板包含多个基于物理的光强度设置,可帮助您利用 HDRP 开始创建逼真的场景。从 Unity Hub 下载该模板。
要在运行时提高动画精灵变形的性能,请通过 Package Manager 安装 Burst 编译器和 Collections 包。这让 2D 动画包能够使用 Burst 编译和低级数组实用工具来加快 Unity 处理精灵网格变形的速度。
为角添加了新的拉伸选项,以连接相邻的边而无需自定义角精灵。该选项会构建几何体来连接相邻的边,而无需在 Sprite Shape Profile 中指定自定义的角精灵。以后的版本中将添加对新角模式的脚本 API 支持。 Sprite Shape 网格烘焙使您可以在编辑时存储网格数据,因此可以在运行时重新加载网格数据,从而避免不必要的运行时网格生成。
2D 默认模板已经更新。现在,它包含所有已编译、已验证的 2D 工具,因此,您可以通过整个 2D 工具集更快地加载新项目。此外,模板还包括最适合 2D 项目的默认设置。有关详细信息,请访问论坛。 我们的 2D 示例项目《Lost Crypt》(展示了所有最新的 2D 工具)已更新到 2020.1。该项目演示了所有 2D 工具如何协作创建引人注目的 2D 游戏。
该版本包含许多针对 2D 物理的更新,其中包括对 Rigidbody2D XY 位置约束的改进,这可让刚体在任何力下成为全实体,并且几乎没有运行时成本。该功能来自对 Box2D 物理的更改。 2D 物理示例项目更新了许多场景,以演示所有 2D 物理功能。
Cinemachine 是适用于动态、智能、无编码摄像机的工具套件,可以根据场景的内容和变化拍摄出最佳的影像。这让您可以实时调整、迭代、试验和创建摄像机行为。在 2020.1 中,Cinemachine 2.5 版本现已成为经过验证的包,推荐用于任何规模的生产环境。
Shader Graph 包含几种为技术美术师改进工作流程的新功能,例如更好的图编辑器性能。请参阅 [Shader Graph 升级指南]((https://docs.unity.cn/Packages/com.unity.shadergraph@10.0/manual/Upgrade-Guide–10–0-x.html)以获得进一步的指导。
VFX Graph 更新包括输出事件,通过 C# 委托接口允许用户基于生成事件同步光照、声音、物理反应或者游戏玩法。
动画骨骼绑定包现已经过验证。通过它可在运行时对动画骨骼进行程序化控制,也可以在 Unity 编辑器中创作新的动画剪辑。
对于全局光照,GPU 光照贴图和 CPU 光照贴图现在具有更高的反弹限制。此外,它们现在使用蓝噪声采样来改善光照贴图质量,并具有几个其他改进。
输入系统包现已通过生产验证,可为大多数输入需求提供稳定的解决方案。
多平台 AR 开发框架 AR Foundation 现在包含对网格的支持。AR 经验可更无缝地融入现实世界,因为可通过现实世界对象呈现虚拟内容,与物理环境逼真交互。
Samsung Adaptive Performance 2.0 附带新的示例项目,展示不同的新功能,包括用于在任何设备上模拟 Adaptive Performance 的 Variable Refresh Rate、Scalers 和 Adaptive Performance Simulator 扩展。
现在还可以通过对面向独立平台播放器的 Apple Silicon 提供原生支持,准备好迎接 Mac 硬件的下一次发展机遇。
性能分析器与播放器的连接现在变得更加稳定,尤其是在低端 Android 设备上。
对 C# Profiler API 的元数据支持允许您定义可在性能分析器中公开的参数,以便从数据中获取更多上下文并更好地了解影响性能的因素。
我们大大减少了内存性能分析器预览包捕获内存的开销以及捕获时间。
您可以通过 Recorder
API 访问 GPU 性能分析数据。使用 Sampler
API 收集数据并在您自己的运行时性能统计信息叠加图中将其可视化。
您现在可以将性能分析器作为独立应用来启动。这会将该工具移动到 Unity 以外的单独进程,从而减少对编辑器进行性能分析时的性能开销,并且有助于创建更清晰的性能分析数据。
Visual Studio 集成现在是一个包,我们将不再进一步开发内置支持。该包还包括新功能和改进,例如更快地启动 Visual Studio。
新的 C# 调试工作流程使编辑器默认以发布模式运行经过优化的 C# 代码,以便在运行模式下运行项目时提高性能。 要调试项目,必须在进入运行模式前启用调试模式。要在代码优化模式之间切换,而无需重新启动编辑器,请选择 Unity 编辑器状态栏右下角的 Debug 按钮。
我们改进了对序列化泛型类型字段的支持。以前,如果有泛型类型(例如 class MyClass>)并且想使用该类型创建字段,则必须定义其非泛型子类(例如 class MyClassInt : MyClassint>)。现在,我们消除了这一限制,因此不再需要声明泛型子类,而是可以直接使用该泛型类型。
Burst 编译器增加了原生调试功能,正在逐步演化为一种开发工具。 现在,您可以使用 Unity 附带的原生调试器设置断点、单步跳过代码和单步执行代码。您还可以检查和浏览调用堆栈、变量、自动变量和线程。
Unity 现在为 C# 脚本的编译提供 -deterministic 编译选项。如果程序集的公共元数据不会在为编辑器编译脚本时更改,此选项则可以避免不必要地重新编译程序集定义 (.asmdef) 引用。要减少对有很多直接和/或间接引用的程序集进行更改所需的迭代时间时,这尤其有用。观看“Unity 2020.2 中默认情况下通过确定性 C# 编译缩短编译时间”视频以了解更多信息。
Unity 现在支持最新的 C# 8 功能和增强,默认接口方法除外。这包括可为 null 的引用类型,使编译器在尝试向引用类型变量分配 null 时显示一条警告。带模式匹配的 Switch 表达式使您可以采用一种更精简的方式编写条件代码。
C# 中的命名空间是一种高效的代码组织方式,可以避免与其他包和库出现类命名冲突。现在,根命名空间在 asmdef 检视面板中是以新字段的形式提供的,用于在 Unity、Visual Studio 和 Rider 中创建新脚本时自动添加命名空间。 如果计划使用此功能,请注意将 Visual Studio 和 Rider 包更新为最新版本。
我们缩短了构建编译时间。如果更改不涉及代码,例如材质、着色器或预制件,现在构建播放器时,会完全忽略从 .NET 程序集到 C++ 的 IL2CPP 转换。
我们修复了不一致的 Time.deltaTime
值,这些值会造成游戏过程中对象移动的卡顿。我们还重构了 TimeManager
接口,使帧时间计算更稳定,并且可在游戏以稳定帧率运行时提供更顺畅的对象移动。各种平台都支持这些时间稳定性改进。
Unity 2020.2 进行了几项重要优化,包括对嵌套预制件的优化,可大幅加快排序和查找的速度。经过测试,在编辑器脚本化导入器注册函数中的搜索加快了高达 800 倍。我们还重构了 Camera.main
,减少了其查询时间,在某些项目中,可减少数百毫秒。
可配置的进入运行模式不再是实验性功能。这使您可以禁用“域重新加载”和/或“场景重新加载”操作来加速进入运行模式。借助现已结束预览阶段的编辑器协程,您可以在编辑器中开始执行迭代器方法,这类似于在运行时处理 MonoBehaviour 脚本中的协程的方式。
Unity Linker 执行静态分析以剥离托管代码。它还识别大量属性,使您在无法识别的情况下可对依赖关系进行注释。该工具获得了 API 更新从而与 Mono IL Linker 一致。Unity Linker 可以检测部分简单反射模式,减少了 link.xml 文件的使用需求。
编译管线现在支持 Roslyn 分析器。这使您可以在 Unity 编辑器内对 C# 代码分析器进行异步后台运行,而不必中断迭代工作流程。您还可以从命令行同步运行。
Unity 安全模式改进了 Unity 在打开有脚本编译错误的项目时的行为方式。如果编辑器在启动时检测到编译错误,现在会提示您进入安全模式。这为您提供了适合解决编译错误的环境,您可以快速使项目回到可运行的状态,而无需不必要地等待导入项目的资源。通过减少库文件夹包含不正确导入组件的情况,此功能可简化和加速将项目升级为新 Unity 版本的过程,可帮助团队处理大型项目。