Unity 2019.1 登场

今年的第一版技术流发布 - Unity 2019.1 - 现已可用。它包含许多新的生产就绪功能,如 Burst 编译器、轻量级渲染管线(LWRP)和 Shader Graph。此外,还有许多针对动画师、移动开发者和图形专家的创新,以及多个更新,简化了项目工作流程并简化了编辑器任务。
在接下来的几周内,我们还将发布 Unity 2018.4 长期支持(LTS)版本,供那些即将发布项目的用户使用,从而希望在坚实的基础上锁定他们的生产。
Unity 2019.1 拥有超过 283 个新功能和改进。在这篇文章的开头,您将找到一个摘要,随后是对主要新功能的详细介绍。如果您急于安装并开始使用 Unity 2019.1,请考虑在阅读此文章时开始下载(点击下面的按钮或通过 Unity Hub 访问)。
在 Unity 2018.1 中,我们在预览中引入了可编程渲染管线(SRP)和 Shader Graph。在 Unity 2019.1 中,我们已移除预览标签,并推荐 LWRP 和 Shader Graph 用于生产。Unity 2019.1 还为艺术家带来了额外的功能和对 GPU 光照贴图器(预览)的平台支持,以及对高定义渲染管线(HDRP,预览)和后处理栈(预览)的一长串改进。
异教徒,由 Unity 获奖演示团队制作的新短片,在 GDC 首映。该演示基于 Unity 2019.1 构建,并利用 Unity 的 可编程渲染管线(SRP) 架构。使用 Unity 高定义渲染管线(HDRP)的最新版本及其集成的后处理栈,团队实现了接近物理相机工作方式的电影效果 - 并实时渲染。
我们继续扩大对艺术家工具的关注。在此版本中,我们引入了运行时动画绑定,使您对动画有更大的艺术控制。我们还对音频、视频、DCC 和世界构建工具进行了改进。最后,时间线现在是一个经过验证的软件包,新的时间线信号功能为时间线与场景中的对象交互提供了一种简单的方法。
此版本为移动端带来了许多改进,包括能够修补应用程序包而不是重建它。这使您在开发过程中能够更快地迭代。我们还推出了移动自适应性能(预览),它为您提供有关热趋势的数据,包括您的游戏在运行时是CPU绑定还是GPU绑定的信息,以及移动游戏开发的一般调试和工作流程改进。最后,Linux的Unity编辑器现在处于预览阶段。
我们继续推进构建高性能多线程面向数据技术栈(DOTS)的进展,我们的Burst编译器将在2019.1中推出。您还会发现一系列其他与DOTS相关的工具,使得创建巨大的大城市演示成为可能,该演示现在可以在这里下载。
在短短两个月内,我们的DOTS团队和来自FPS示例组的两位艺术家制作了这个未来城市景观。
我们还推出了一个完整的物理解决方案,适用于与Havok合作开发的基于DOTS的Unity项目。我们还进行了其他改进,包括可点击的堆栈跟踪链接,可以将您带到堆栈中列出的任何函数调用的源代码行,一个基于文本的搜索工具来过滤您的控制台条目,并且我们正在推出新的增量垃圾收集器,作为现有垃圾收集器的实验性替代方案。
我们喜欢在运行时获得出色的性能,但在编辑器中工作时高性能同样重要,因此我们继续专注于改善工作流程。通过快捷方式管理器,我们推出了一个交互式的可视化界面和一组API,使您更容易管理编辑器热键,将其分配给不同的上下文,并在一个界面中可视化现有绑定。通过新的SceneVis控件,您现在可以快速隐藏和显示场景视图中的对象,而不改变对象在游戏中的可见性。您现在还可以使用UI元素来扩展编辑器。
Unity发布包括TECH流和长期支持流(LTS)。在2019年,我们将有三个TECH流发布:2019.1,2019.2(夏季)和2019.3(晚秋)。2019.1是新TECH流的开始,并提供对最新功能的访问。
LTS版本没有任何新功能、API更改或改进。这只是2018 TECH流的延续,带有更新和修复。这就是我们称之为2018.4的原因,而今年的TECH流以2019.1开始。LTS流适用于希望继续开发和发布其游戏/内容,并在较长时间内保持稳定版本的用户。它解决了崩溃、回归和影响更广泛社区的问题,例如企业支持客户问题、主机SDK/XDK问题,或任何会阻止大量用户发布其游戏的重大更改。每个LTS流将支持两年。
2018-LTS目前正在进行测试,预计将在2019.1.0之后的几周内发布。
移动通知预览软件包帮助您通过添加对在 iOS(从 iOS 10)和 Android(4.1 及以上)上调度本地可重复或一次性通知的支持来实现留存机制和基于计时的游戏玩法。它作为一个软件包提供,您可以在这里找到更多信息。
自适应性能的预览版本现已可用于 Unity 2019.1。
移动开发者面临的最大挑战之一是构建既美观又流畅的游戏,但又不超负荷硬件,这会导致节流(性能差且不一致)和缩短电池寿命。延长电池寿命/降低热量可以让玩家有更长的游戏时间,从而提高用户留存率,最终使游戏更成功。与 PC 或主机不同,利用移动硬件需要微妙的平衡;充分利用设备的能力会迅速妥协性能。
为了解决这些问题,我们与三星合作——在他们的 GameSDK 基础上构建——创建了自适应性能,您可以使用它来优化 Galaxy S10 和 Galaxy Fold 的项目。
阅读更多关于自适应性能的信息在这里。
Hub现在允许您作为Android Build Support选项的一部分安装所有所需组件,因此您可以确保获得正确的依赖项,而无需安装其他任何东西。如果您是高级Android用户,仍然可以手动安装和配置组件,并使用Android Studio。另外,请注意,从2018.3开始,Android Build Support附带基于OpenJDK的Java Runtime。

Android Logcat包是与Unity 2019.1兼容的实用程序,用于在Unity编辑器中显示来自Android设备的日志消息,使您能够通过直接在Unity中控制和过滤消息来更轻松地调试。

为了在开发过程中进行更快的迭代,您可以在编辑器中使用仅脚本构建选项。这让您跳过构建过程中的许多步骤,仅重新编译脚本,然后在选择构建和运行时构建最终包并部署。
我们扩展了此功能,因此它允许您在目标设备上修补应用程序包(APK,仅限Android),而不是重新构建和重新部署。因此,当您在C#代码上进行迭代时,仅重新编译的库会发送到设备。请注意,在Unity可以执行仅脚本构建之前,项目的完整构建必须可用。

AR Foundation使Unity开发人员能够快速开始构建AR项目。您可以选择在构建一次以在ARKit和ARCore设备上部署的体验中包含哪些功能。在Package Manager中以预览形式提供,它将ARKit和ARCore低级API封装成一个统一的框架,还包括额外的功能,以帮助开发人员克服最大的AR开发挑战。
此功能允许您在设备和编辑器之间传递数据,因此您无需每次测试功能时都构建到设备上。它包括会话录制和播放功能,允许您在设备上录制会话并在编辑器中播放,以创建对应用程序的强大测试或迭代可视化。
可在GitHub上,这个场景、预制件和辅助组件的集合是基于AR Foundation构建的,演示了如何进行平面可视化、对象放置等。它还包括如何将LWRP与AR Foundation结合使用的示例。它包含了您开始构建所需的所有基础组件,以便您可以快速启动AR项目。
对AR和VR的LWRP支持
AR Foundation对LWRP的支持作为预览软件包提供,让您可以在AR体验中使用LWRP。此外,在此版本和最新的LWRP验证软件包中,您现在可以利用Shader Graph以及LWRP的性能优化,为Unity官方支持的所有VR平台构建VR体验。在图形部分了解更多关于我们对LWRP的更新。
立体渲染模式回退
当目标设备不支持立体实例化时,立体渲染会自动回退到单通道(双宽)渲染。您现在可以安全地使用更高效的立体实例化渲染模式,而不必担心特定设备的图形API不支持它。在早期版本中,立体渲染模式会回退到多通道渲染。
立体实例化的后处理支持
在此版本和最新的后处理软件包中,所有适用于VR的后处理特效现在都可以与立体实例化渲染模式一起使用。
对Magic Leap(Lumin OS)的内置支持
现在在此版本中包含对Magic Leap One构建的支持。这意味着您可以使用此Unity版本,而不必使用专门的Magic Leap开发技术预览版本。
在此版本中,WebAssembly 是 Unity WebGL 的默认输出格式。此外,asm.js 已从编辑器 UI 中移除,该功能在 2018.3 中被弃用。为了反映这些变化,asm.js 特定的使用预构建引擎构建选项不再可用。WebGL 玩家设置也已更新:链接器目标和内存大小分别设置为 WebGLLinkerTarget.Wasm 和 32MB,并已从编辑器 UI 中移除。然而,仍然可以通过编辑器脚本修改这些设置。
在此版本中,我们还引入了实验性的 WebAssembly 多线程功能,可以通过 PlayerSettings.WebGL.threadsSupport 启用。有关更多信息,请参见此 论坛帖子。
Unity 编辑器的 Linux 版本现在处于预览状态。您可以从 Unity Hub 获取最新版本。仍然存在一些粗糙的地方,但您将继续看到随着时间的推移而改善。将 Unity 编辑器从实验性转为预览意味着我们现在正朝着年底前推出完全支持的版本迈进。我们优先支持以下配置列表:
- Ubuntu 16.04, 18.04
- CentOS 7
- x86-64 架构
- 在 X11 窗口系统上运行的 Gnome 桌面环境
- Nvidia 官方专有图形驱动程序和 AMD Mesa 图形驱动程序
- 桌面形式因素,在没有仿真或兼容层的设备/硬件上运行
我们建议您使用上述支持的配置,以获得最佳的开发体验。
我们对控制台的异步计算支持进行了某些增强。我们现在允许更广泛的命令缓冲区脚本功能有效,适用于针对异步计算队列的命令缓冲区(例如,设置全局着色器数据或管理临时渲染目标的函数)。我们还改善了针对异步计算队列的命令缓冲区的错误处理,如果使用了无效的命令缓冲区脚本功能,将立即反馈;这使得调试变得更容易。
通过命令缓冲区链式和连接,我们优化了提交给GPU的工作方式,特别是对于本地图形作业,之前的方法会产生小的GPU开销。
我们为ARM64设备添加了对UWP的支持。只需选择ARM64作为您的目标架构,并部署到基于Windows的ARM64笔记本电脑。
根据用户数据和客户研究,显示分辨率对话框在此版本中默认情况下为“已禁用”。您仍然可以通过项目设置中的显示分辨率对话框下拉菜单启用它。您可以在玩家、分辨率和呈现中找到它,在独立运行版选项组中。关于显示分辨率对话框演变的更多信息将在不久的将来分享。
在2018.1中,我们引入了Burst编译器,这是一种基于LLVM的新后端编译器技术,它将C#作业转换为针对您的目标平台的高度优化的机器代码。随着此版本的发布,它已脱离预览并可用于生产。
使用Burst编译器,您无需进行低级编码的繁重工作即可获得手动调整汇编语言所带来的性能提升。您可以继续用C#编写代码。

DSPGraph是新的音频渲染/混合引擎,建立在Unity的C#作业系统之上。它在C#中完全可扩展,并且可以与Burst编译器一起使用。在Megacity项目中,它驱动着100,000个独特分散的3D/空间声音发射器,包括霓虹灯、空调风扇和汽车,产生丰富、真实的声音环境。
请注意,DSPGraph是一个内部实验性API,我们计划在今年晚些时候进行打磨并发布为预览软件包。这将成为即将推出的数据导向技术栈音频系统(以及其他系统)的基础。如果您在我们的Megacity项目中探索DSPGraph,请加入我们新的数据导向技术栈音频论坛。这是向我们询问问题或分享您的音频需求的完美地方。

除了改善您的编辑器工作流程外,您还可以将转换后的子场景用作流式单元。它们可以在游戏玩法中加载和卸载,并且在编辑器中也会异步加载。
您可以通过将SubScene组件添加到根GameObject,将一组GameObjects转换为实体。当您想要编辑子场景中的GameObjects时,只需打开它并进行更改。当您完成编辑并关闭 GameObject 子场景时,GameObjects 组会自动转换为实体。
在子场景中对 GameObjects 所做的更改不会影响根场景,使得多个团队成员可以同时在不同的子场景中协作。
子场景功能是实体软件包的一部分,您可以在软件包管理器中找到它。该功能目前是实验性的且没有文档,因此请谨慎使用。
仅在两个月内,我们的 ECS 团队和来自 FPS 示例组的两位艺术家制作了 Megacity,这是一个充满飞行车辆、数十万个高度详细的游戏对象和独特音频源的未来城市景观。他们利用了 面向数据技术栈 (DOTS),这是所有在默认情况下性能横幅下的项目的名称,包括实体组件系统 (ECS)、C# 作业系统和 Burst 编译器。

在 GDC 2019 上,我们宣布与 Havok 合作,为 Unity 中的基于 DOTS 的项目构建完整解决方案。如果您的项目使用新的 DOTS 框架,Unity Physics (预览) 是您的默认物理系统。该系统使用 C# DOTS 框架编写,并利用 Burst 编译器和 C# 作业系统提供高性能模拟。通过使用无状态设计且没有缓存,求解器变得简单得多,使我们能够构建一个更适合网络的物理系统,易于扩展、调整和修改以满足您的制作需求。Unity Physics 可通过软件包管理器在 Unity 2019.1 中使用。
在 2019 年 6 月,我们还将提供 Havok Physics 软件包,作为对具有非常复杂物理模拟需求的基于 DOTS 的项目的集成。它使用与 Unity Physics 相同的 C# DOTS 框架,但由封闭源、专有的 Havok Physics 引擎支持,该引擎用本地 C++ 编写。我们构建了 Unity Physics 和 Havok Physics,以使用相同的数据协议,这意味着您可以一次编写内容和游戏代码,并且这些数据在两个系统之间共享。这将让您在项目中无缝切换两种基于DOTS的物理解决方案,甚至可以同时使用它们。

如果您当前在项目中使用GameObject和MonoBehaviour框架,那么PhysX将是您的默认物理系统。这不会改变,我们将继续支持和评估Unity中基于GameObject/MonoBehaviour的项目的PhysX更新。
我们为非DOTS项目的PhysX解决方案添加了一些改进。例如,布料现在可以独立于场景重力施加自己的重力,以便于调整。我们还更新了物理调试视图的颜色,以提供更好的体验,并与辅助图标的颜色保持一致。刚体组件检视面板中有一个新部分,显示有助于调试的内部信息,例如线性和角速度、质心和惯性张量。

新的Physics.GetIgnoreCollision函数让您轻松检查给定的碰撞体是否禁用碰撞。物体的默认最大角速度已从7增加到50。这将改善快速移动物体的模拟,以及在具有挑战性的配置中布娃娃碰撞的分辨率质量。这将允许求解器更快地旋转物体,从而在更少的迭代中满足约束。
到目前为止,我们只支持在多场景上下文中进行射线投射。随着此版本的发布,所有场景查询现在都可以在多场景上下文中使用。物理调试视图也支持多物理场景,允许您查看所选对象属于哪个物理场景。您还可以查看属于给定物理场景的对象。
当启用脚本调试时,我们改善了运行时性能。此外,IL2CPP生成的代码性能提高了多达20%。
我们改善了Unity的性能分析器与外部性能分析器的集成。Unity的开发构建现在为安卓Systrace生成标记,使您能够在系统范围的跟踪Android Systrace工具中可视化Unity事件命名的部分。然后,您可以在操作系统活动的上下文中分析您的游戏,例如调度、CPU状态和系统中运行的其他进程。原生Systrace支持,之前是一个插件,现在是Unity 2019.1的一部分。所有托管线程现在在Mono和IL2CPP脚本后端中可见,所有原生Unity线程也被暴露。线程上的活动在性能分析器窗口的时间线视图中显示,我们还自动注册所有线程与性能分析器。此外,我们将性能分析器在玩家中的默认允许内存使用量增加到4MB,在编辑器中增加到64MB。这使您能够在将数据流式传输到磁盘或网络之前积累更多数据,并减少开销。您还可以使用“-profiler-maxusedmemory”命令行参数来控制它。最后,我们添加了UnityEditor.Profiling.HierarchyFrameDataView API,允许您快速遍历所有线程的CPU性能分析数据,并获取性能分析器窗口层级视图中所有可用信息,以及所有相关元数据(例如,GC.Alloc调用栈)。
性能分析器是一个新的性能分析包,现已在预览中提供。它通过添加同时分析多个帧的能力,补充了Unity性能分析器的单帧分析。当需要更广泛地查看您的性能时,例如升级Unity版本、测试优化效果或在开发周期中跟踪性能时,这非常有用。它分析从当前加载的Unity性能分析器的活动帧集或从先前保存的性能分析器会话加载的CPU帧和标记数据。分析的CPU帧和标记数据通过直方图和箱线图进行汇总和图形化,这补充了每个标记的活动可排序列表,包括最小值、最大值、平均值、实例计数、范围,以及标记首次出现的帧。


在此版本中,我们引入了增量垃圾收集器,作为现有垃圾收集器(GC)的实验性替代方案。增量垃圾收集器能够将其工作分成多个片段。这意味着增量垃圾收集器将进行多次较短的中断,而不是一次长时间的程序中断。虽然这不会使GC整体变快,但它可以显著减少GC峰值打破项目中动画平滑度的问题,因为它将工作负载分配到多个帧上。要了解更多信息,请阅读我们的博客文章在这里。
在资产导入期间,现在会重新加载ScriptableObjects。这意味着如果在导入之前加载了ScriptableObject,并且磁盘上的基础资产已被修改,则在导入完成后,ScriptableObject将被重新加载并具有来自磁盘上资产的新值。在此更改之前,ScriptableObject在导入后将被卸载,导致使用相等(==)运算符比较时ScriptableObject等于null。此重新加载仅发生在ScriptableObjects和在(重新)导入之前已加载的嵌套预制件上。有关重新加载ScriptableObjects的更多信息,您可以查看可用的代码示例在这里。
通过此版本,包开发人员现在可以在程序集定义文件检视面板中使用新的版本定义功能有条件地依赖于包中的C#代码。
缺失的程序集定义文件(asmdef)引用现在被忽略,而不是产生缺失引用错误。这允许您添加对可选的asmdef程序集的引用。
使用程序集定义检视面板中的新版本定义功能,您可以根据当前在项目中解析的包和模块的版本范围定义哪些C#预处理指令被设置。这允许您为可选包中的功能使用#if您的C#代码。

通过此版本,一旦您在项目视图中选择了预制件,我们重新引入了在检视面板中编辑预制件资源的能力。这意味着您不必在预制件模式下打开预制件或将其拖到场景中进行编辑。
快捷方式管理器为您提供了一个交互式的可视化界面和一组API,使您更容易管理编辑器热键,将它们分配给不同的上下文,并可视化现有的绑定。为了解决绑定冲突,您现在可以可视化多个命令是否使用相同的绑定,并相应地重新映射。
您可以通过按住Shift + Control来查看可用的快捷方式。所有保留和未保留键的列表将出现。您还可以将热键存储在自定义配置文件中,以便可以保存、共享并迁移到其他工作站。新的上下文系统允许您在特定上下文中为编辑器窗口注册命令。这使工具开发人员能够定义他们的自定义操作并将其作为快捷方式提供。这些快捷方式可以定义为上下文感知的,以便它们仅在正确的上下文中可用。最后,您可以可视化并解决快捷方式之间的任何冲突。例如,如果多个软件包使用相同的快捷方式,编辑器将触发通知并提供处理冲突的选项。
我们更新了编辑器控制台,增加了可点击的堆栈跟踪链接,带您到堆栈中列出的任何函数调用的源代码行,以及一个搜索工具来过滤您的控制台条目。
新的快速搜索工具使您可以轻松地在编辑器中跨多个搜索提供者(例如,素材资源、层级视图、设置)进行搜索。它也可以扩展,供希望包含自己搜索提供者的开发人员使用。该功能目前处于预览状态。要了解更多信息,请参见论坛,如果您尝试它,请务必分享您的反馈。

新的动画绑定软件包让您对动画有更多艺术控制。您可以使用一组预定义的动画约束手动构建通用角色的控制绑定层级。在运行时,绑定约束被转换为动画作业列表,这些作业作为后处理操作附加到控制器可播放图形中。新的动画绑定软件包基于动画 C# 作业,使您能够设置安全的多线程绑定,这些绑定可以程序性地控制变形、模拟伪物理行为或次要运动,并纠正整体动画。
您可以使用软件包中包含的预定义约束库构建具有不同目的的不同绑定设置,然后在游戏玩法中适当的时间动态混合它们,以控制最终动画的输出。
最后,该软件包是可扩展的,因此您可以编写针对特定生产需求的自定义约束。有关更多信息,请观看我们的GDC 2019 演讲。加入我们在论坛上讨论动画绑定软件包!

新的UI/UX架构包括许多功能,帮助使用排序和搜索以及在资源管理器/访达中显示来提高可见性和搜索。您现在可以调整主Hub桌面窗口的大小,直接从Hub管理您的许可证,并在未先激活Unity许可证的情况下安装和运行Hub。此版本还包括对语言本地化和国际化的支持,以及对网络连接检查处理方式的一些改进。有关更多信息,请查看我们的论坛帖子。
由于您现在可以通过Unity Hub管理项目,因此内置的项目启动器不再作为编辑器的一部分包含。这是打开/创建项目以及在编辑器中管理许可证的重要变化,因此我们希望您在我们进行此过渡时提供反馈。

注意:编辑器命令行界面不受此更改的影响,并将继续按预期工作以进行项目管理和许可证激活。如果您尚未下载/安装它,可以在这里获取最新的Hub版本。如果您已经安装了Hub,请确保将其更新到至少v1.3(启动/重新启动Hub将触发自动更新过程)。
您现在可以在编辑器中可视化您的软件包和核心依赖项,直接从 GitHub 仓库安装软件包,并并排管理私有和 Unity 托管的注册表。此版本还包括对程序集定义引用的支持(请参阅版本定义部分)。加入 Unity 包管理器论坛 的讨论,并查看 2019.1 手册以获取更多信息。
这是一个新的保留模式 GUI 系统,使开发人员能够快速创建和编辑 UI 布局和样式。新的 GUI 系统借鉴了网络的 CSS、jQuery、HTML DOM 和事件系统的概念,使在 Unity 中创建和优化 UI 更加容易。它还提供了改进的性能和许多新功能,包括样式表和动态/上下文事件处理。
我们在构建新系统时考虑了性能和可扩展性,因此它具有常规和全面的 C# API,使开发人员能够构建、修改和与 UI 交互。熟悉的 C# API、事件系统、CSS 和 XML 导入格式使构建用户界面变得简单。UI 元素取代了 IMGUI 用于扩展和创建编辑器 UI,并将在未来版本中取代 uGUI 用于创建运行时 UI。
您现在可以使用 C# 任务系统操作粒子数据,而无需在脚本和原生代码之间复制粒子数据。要设置它,请基于 IParticleSystemJob 创建一个任务结构,将其附加到粒子系统上,使用 SetJob,它将在原生粒子更新执行后从线程中调用。
此版本包括对网格粒子的一些小改进。例如,可以从脚本查询和分配分配给每个粒子的网格。ParticleSystem.Particle 结构现在包含获取/设置网格索引的方法。自定义顶点流具有新的网格索引流,允许您将网格索引发送到着色器。您可以使用此功能编写针对单个网格的着色器代码。纹理帧动画模块包含一种新的行模式,根据粒子的网格索引选择动画的行。这使您能够为效果中的每个网格分配特定的动画。
在此版本中,Shader Graph 已经准备好投入生产,它是一个基于节点的可视化界面,用于构建着色器。它让艺术家可以轻松自定义事物的外观,而无需编写任何代码。Shader Graph 允许您拖放节点,以实时查看结果。即时反馈也使调试和微调变得简单,无论是着色器专家还是初学者。Shader Graph 的一个关键新特性是嵌套子图,它允许您可视化创建自定义节点。子图也可以嵌套,因此您可以为您的项目或工作室定义自定义内容库。这为技术艺术家提供了对整个着色器管线的灵活、非破坏性控制,促进了实验和创造力。在这场 GDC 2019 演讲中了解更多关于新 Shader Graph 特性和推荐工作流程的信息。
LWRP 在此版本中已准备好投入生产。LWRP 是一个预构建的可编程渲染管线(SRP),经过优化以提供高图形渲染性能。它高度可配置,允许您全局或按摄像机控制渲染设置。它还为您提供了设置摄像机深度和颜色纹理以实现自定义效果的灵活性,这与 Shader Graph 集成。这个高度可扩展的即插即用架构让你可以创建自定义渲染通道。你还可以覆盖渲染器以实现特定效果。使用LWRP可以让你在平台之间实现灵活性和渲染比例。源代码在GitHub上可用,允许你进一步自定义LWRP。在2019.1中,我们还添加了动态缩放支持,保留UI,这帮助你在高DPI屏幕的移动设备上渲染游戏时保持UI清晰。此外,我们还添加了对SRP Batcher的支持,并对粒子着色器进行了多项改进,包括软粒子和扭曲。地形着色器以及烘焙的光照着色器也有改进。在此版本中还新增了一个自定义渲染器系统,允许更大的定制化。此外,我们还添加了对视觉效果图的初步支持,初始的LWRP支持限于无光照着色器,并限于计算能力的平台。
在Unity手册中了解更多关于LWRP的信息。
HDRP是一个预构建的高保真可编程渲染管线,旨在针对现代的、兼容计算着色器的平台。从设计上讲,它为你提供了创建从游戏到技术演示的工具,支持最高分辨率。在此版本中,我们添加了几个新功能,并显著改善了艺术家的工作流程。这些变化的一个缺点是,一些之前创建的数据与此版本不兼容,需要重新创建。为了帮助你从2018.3升级,我们创建了迁移过程的指南。它可以在这里找到。此版本支持PC的DX11和DX12,Mac的Metal,PC和Linux的Vulkan,Xbox One和PS4。HDRP将在2019.3之前保持在预览状态。注意:此版本附带HDRP模板中的HDRP 5.7.2软件包。为了利用此处列出的功能,我们建议您在安装模板后升级到5.12.0或更高版本的软件包。
此版本包括对Linux和Vulkan API的改进支持,包括更少的伪影。一些伪影仍然存在,但整体体验有所改善。
双宽是VR的慢路径,渲染两个视图并排显示。更优化的单通道实例版本将在2019.2中推出。所有HDRP特效现在都得到支持,包括折射、失真、次表面散射、贴花和体积效果。有关支持的功能的详细信息,请参见此文章。
HDRP现在使用RGB111110Float的颜色缓冲格式,而不是ARGBHalf,从而实现更快的着色器执行和整体性能提升。在2019.1中,当只有一个方向光和简单材质时,我们现在有了快速路径。为了节省CPU时间,运动向量对象不再与深度预通道渲染两次。失真已通过模板缓冲区进行了优化,着色器变体剥离已得到改善,以减少构建时间。2019.1还包括对软件动态分辨率的支持,这允许您在每个平台上以不同于UI的比例渲染世界(对支持平台的硬件动态分辨率的支持将稍后推出)。您只需通过C#脚本驱动所需的分辨率。最后,透明材质现在可以使用“低分辨率”的渲染通道名称,以允许它们以四分之一分辨率渲染,同时保持类似的视觉质量。这对于改善大型粒子的过度绘制性能非常有用。

HDRP 现在对所有 UI 元素提供更好的多版本支持、更好的文档和更好的工具提示。它还增加了对 多视口 的支持,这使您可以在同一目标中渲染多个相机,以实现分屏渲染和其他类似行为。

FrameSettings 和 HDRP 资产设置已重构,以实现更快的计算时间和更简单的编辑。现在有关于 HDRP 资产设置对内存和着色器变体影响的信息。已添加对 SMAA(SMAA 1X)抗锯齿方法的支持。它提供了一种介于性能(FXAA)和质量(TAA)之间的方法。

后期处理后 渲染通道现在可用于无光照着色器。HDRP 在后期处理通道之后渲染使用此渲染通道的对象,这意味着后期处理不会影响它们。这对于渲染 3D UI 非常有用,例如。
HDRP 现在包含一个调试选项,可以冻结相机以进行剔除,但从渲染的角度保持可移动,让您看到在给定场景视图中被剔除的内容。还有一个材质 PBR 验证器和一个发光颜色覆盖。
此向导帮助您配置项目设置,以便在使用 HDRP 时正常工作。它突出显示配置不正确的项目,并提供修复按钮以纠正它们。此外,您可以设置新的自定义场景。

decals 已通过更好的 gizmo 控制、Shader Graph 支持和不透明 decals 的发光支持进行了增强。录制器 现在得到了正确的支持,并允许您从 HDRP 录制视频。织物 棉花的光照模型已改进,以反映 索尼影业图像工作室的最新研究。

体积雾效已被优化,精度更高。我们还更新了密度体积的辅助图标。光源层,允许您标记光源和对象,以便只有具有相同标签的对象才能接收来自特定光源的光照,现在已完全功能化,并正确支持阴影控制。扩散配置文件用于次表面散射,已在2019.1中更改。之前,每个项目中的扩散配置文件列表限制为16个配置文件。扩散配置文件现在是可以共享/分发的单独素材资源,每个视图限制为16个配置文件。当前在视图中使用的配置文件列表由体积设置控制。2019.1会自动将旧扩散配置文件系统的数据迁移到新系统,但不适用于Shader Graph。您需要重新创建那些扩散配置文件。此版本还增加了对透明材质上的运动向量的支持。透明材质可以写入自己的速度,覆盖速度缓冲区的先前内容。这对于像头发这样的Alpha结束材质非常有用。
2019.1附带了多个新的Shader Graph主节点。新的高清无光照主节点让您可以访问跨管线无光照无法提供的完整功能集,例如失真或渲染通道选择。

还有一个新的AxF主节点,旨在支持X-Rite AxF测量材质格式。AxF材质仅在与我们Unity Industry Bundle的一部分AxF导入器配合使用时才有用。AxF导入器会自动填充所有AxF材质的设置。

新的头发主节点也可用。它依赖于艺术家友好的基于Kajiya Kay的光照模型,具有更好的能量保护并提供更多灵活性。

添加了各种新的 HDRP 特定节点/行为。现在可以采样 场景颜色,包括模糊的 mipmaps,以模拟粗糙的折射或失真(颜色仅适用于透明对象)。场景深度 节点还允许您访问原始、线性(在 0 和 1 之间)或眼深度。在 Lit Master Node 上添加了 深度偏移 输入,以在视图向量的方向上向内或向外推送深度。这在使用新的 视差遮挡映射 节点从光源获取阴影时非常有用。

此外,所有 HDRP Master Nodes 现在都支持覆盖烘焙的 GI。要启用它,请在 Master Node 设置中使用 覆盖烘焙 GI 复选框。它在主节点上添加了两个新输入:烘焙 GI 和 后烘焙 GI。这允许您分别提供自己的烘焙 GI 用于间接漫反射光照和传输;或者,结合 烘焙 GI 节点,您可以修改它。烘焙 GI 属性的默认值等同于 烘焙 GI 节点 的默认输出。

我们对光照进行了多项改进。之前,光照无法使用正确的真实世界/物理值,因为曝光范围和精度不允许。光照计算现在使用预曝光。这意味着曝光不是在后处理期间在帧结束时应用,而是应用于光照本身,这大大提高了精度,并允许高光强度值,例如太阳的光强度。此外,天空、发射和一些光源现在使用 EV100 单位,而不是通常用于光照图表中的参考值的 EV 单位。由于这是与 2018.3 的最大光照差异,将您的项目升级到此版本意味着您可能需要调整一些光强度。Lit/Unlit Shader 和 Lit/Unlit Master Node 上的发射属性已改进,以支持 EV100 或亮度单位,并增加了 曝光权重 控制和 发射节点。此控件允许您强制对象在正确曝光时仍然发光(例如,即使在明亮的阳光下也允许其发光)。

矩形区域光源已增强以支持光饼和近似区域阴影。这是一个“昂贵”的功能,主要用于高质量模式或电影制作。阴影遮罩支持已添加,提供高质量的烘焙柔和阴影,同时保持镜面高光。

GPU现在烘焙反射探针,加快了烘焙速度。此外,反射探针与光照工作流程集成,以简化反射探针的烘焙过程,让您可以从光照窗口烘焙所有加载的反射探针。
已添加对实时平面反射的支持。在播放期间,HDRP仅渲染可见的实时反射和平面探针,这些探针现在在FrameSettings中具有单独的控制,适用于实时或离线渲染。
在2019.1中,我们将后期处理直接集成到HDRP中,并包含了一套基于计算着色器的自定义后期处理效果,特别为高端主机和桌面平台的性能和质量而设计。这套新的后期处理工具与RT Handle系统兼容,并支持动态分辨率功能。请注意,新的后期处理设置与后期处理栈V2(PPv2)不兼容,这意味着您在升级到2019.1时必须重新创建所有后期处理。这也意味着HDRP不再支持PPv2。后期处理抗锯齿,配备FXAA、SMAA、时间抗锯齿和8位抖动,有助于平滑渐变并消除8位颜色带。您可以直接在摄像机上设置它们。色差、镜头畸变和晕影与PPv2中的相同。胶卷颗粒已重新设计为使用颗粒查找纹理,而不是程序噪声。我们还添加了一种新的帕尼尼投影效果。
帕尼尼投影特效。辉光现在使用基于预曝光值的阈值。这意味着只有过度曝光的物体会发光,而不是超过特定强度的物体。颜色分级改进了PPv2中的“HDR分级”模式。大型颜色分级面板已拆分为单独的体积组件,以减少检视面板的杂乱。景深已完全重做,现在提供参数化光圈形状控制,允许您轻松配置刀片数量、曲率、桶裁剪和变形。该特效现在与分辨率无关。运动模糊也已完全重做,以提高质量和性能。这包括新颖的算法修改,允许更精确和更广泛的模糊,同时减少伪影。


在2019.1中,您现在可以访问HDRP的深度和法线缓冲区。此外,视觉效果可以访问内部HDRP渲染缓冲区,如主摄像机的深度或颜色,并在模拟通道期间将其用作输入纹理。这使您可以轻松设置深度缓冲碰撞和与粒子的场景变形等功能。
视觉效果图是一个易于使用、灵活的基于节点的系统,灵感来自电影中的领先VFX工具。它让您快速创建游戏和其他创意内容的惊人效果。在2019.1中,我们添加了几个改进和新功能,并制作了各种示例,帮助您开始创建下一代视觉效果。一个新的预热功能允许您预模拟效果的一部分,直到某个时间,以便它处于完全开发状态。这可以用于创建例如随着时间积累的烟雾堆积效果。我们还更新了光照探针和光照探针代理体积。噪声函数通过 Perlin(值和细胞噪声及其卷曲变体)得到了改进。生成时间和生成计数操作符现在使您能够计算在上一个帧中一次生成的粒子数量。
GPU 光照贴图生成器现在处于预览状态,具有额外的功能和平台支持。它在 macOS 和 Linux 上启用,并支持材质上的双面 GI 标志以及网格上的阴影投射和接收。

GPU 光照贴图生成器现在默认使用与编辑器相同的 GPU,以确保使用高性能的专用 GPU。如有必要,您可以通过使用命令行更改为不同的 GPU;有关详细信息,请参见 文档。

Optix AI 去噪器是基于深度学习的去噪器,经过路径追踪图像库的训练。与过滤选项相比,它是一个显著的改进,特别是在低样本计数时,并且对泄漏和模糊具有很强的抵抗力。它可以与过滤器结合使用,以实现更平滑的光照贴图。使用新的去噪器可以显著减少样本计数,从而实现比以前更快的烘焙。它目前仅在 Windows 上可用,并与兼容的 Nvidia GPU 一起使用。

MIS 环境是一种新的方法,用于对立方体贴图/HDRI 中最重要的区域进行采样。该技术避免向半球发射大量 GI 光线,而是将其集中在重要区域,如亮点(如太阳)。通过此功能,可以使用高度不均匀的测量 HDRI 环境贴图烘焙场景。在光照窗口中添加了一个新的环境样本参数。该值控制每个光照贴图纹素直接追踪到环境的光线数量。


光照探针辅助图标现在受到曝光校正的影响。这使得在使用HDRP和高强度光照时更容易迭代光照探针。

通过新的限制光照贴图数量参数,您可以为特定对象组指定生成的光照贴图的最大数量。这在为资源可能有限的移动平台构建游戏时特别有用。实时 GI:异步读取消除了CPU等待GPU读取的需要。这可以提高性能并减少CPU峰值。自动生成在新场景中不再是默认设置。我们还在底部状态栏添加了一个链接,以显示您是否处于自动生成模式。

LookDev,一个用于查看资产的实验性功能,已被移除。我们将改进它,并在今年晚些时候将其添加回SRP(支持LWRP和HDRP)。
Unity编辑器推迟着色器编译,直到渲染第一次需要特定的着色器变体。然而,这可能会导致编辑器停滞,因为着色器编译的往返可能需要相当长的时间。新的异步着色器编译功能通过将编译与渲染解耦来消除这些停滞,并使用普通的青色虚拟着色器作为替代,直到编译完成。这只是一个编辑器功能,不会影响您的游戏,但可以加快编译时间。
现在每个顶点可以有32个骨骼影响,使用API的情况下最多可达255个,适用于蒙皮网格渲染器。这保持了皮肤权重在运行时与外部程序中的源内容的一致性。这对于基于骨骼的面部绑定尤其有用,因为高细节区域,如嘴角和眼睛,需要超过4个骨骼影响。这也将提高使用平滑皮肤分解的绑定的质量,使您能够用更少的骨骼实现更平滑的结果。
Sketchup导入器现在具有更新的用户界面。我们还为Sketchup中所有可用的相机类型(正交、透视和两点)添加了相机导入支持。最后,我们改善了模型导入器材质选项卡用户界面的性能。
时间线信号为时间线与场景中的对象交互提供了一种简单的方法。使用信号发射器和信号资产,您可以触发一个信号接收器,该接收器将定义一组预配置的反应(Unity事件)到您的时间线。信号发射器用于在时间线经过给定时间点时触发场景状态的变化。
我们选择“信号”这个词而不是“事件”,因为“信号”支持“广播”的概念;它也避免了与现有的Unity事件和动画事件的混淆。
我们还为有兴趣创建具有特定行为的自定义关键帧的用户引入了“标记”。您可以像处理剪辑一样使用标记在时间线上添加和操作对象:选择、复制粘贴、编辑模式等。标记也有专业化,就像动画剪辑、激活剪辑、控制剪辑等。请参见这个论坛以了解如何创建您自己的自定义标记。
我们在时间轴中添加了一些音频改进。例如,您现在可以在进行时间轴编辑时控制/设置单个音频轨道的关键帧。您现在还可以在轨道上进行简单的音量和声像控制,以及每个轨道的音量和声像动画。

此版本引入了对 H.265 视频编码的支持。这使您能够播放 H.265 电影,并将其他支持的视频格式转码为 H.265 编码格式。
H.265,或称高效视频编码(HEVC),是一种视频压缩标准,是高级视频编码(H.264)的继任者。与 H.264 相比,H.265 在相同比特率下提供更好的质量。
SRP 现在在我们的 视频播放器和视频录制器中得到全面支持。这使得视频播放器在通过 HDRP 或 LWRP 渲染时能够播放视频。此外,视频录制器已更新,以处理使用 SRP 时来自摄像机的输入。在为视频播放器添加 SRP 支持的过程中,我们还修复了一些影响摄像机渲染模式(远/近平面)的重大错误,并修复了 360 视频(立体声)支持。
您可以使用 Unity 的 SceneVis 控件快速隐藏和显示场景视图中的对象,而无需更改对象在游戏中的可见性。随着场景变得更加详细,暂时隐藏特定对象通常会有所帮助;新的隔离模式让您可以在没有障碍的情况下查看和编辑。SceneVis 通过层级工具和键盘快捷键启用此功能,还有一个工具栏切换,让您可以快速启用或禁用效果。
Sprite Shape软件包具有许多改进。例如,您可以使Sprite Shape的最终2D碰撞体在形状上更接近精灵的视觉表现,从而允许您添加更贴合Sprite Shape渲染器的多边形和边缘碰撞体。
我们还添加了非镜像连续切线用于形状控制点,允许您创建曲线形状,以帮助您更精确地实现所需的外观。

当您使用新的2D动画软件包(v2.1,通过软件包管理器访问)时,您会注意到在编辑器中为精灵绑定皮肤以及在运行时的性能提升,因为它是使用C#作业系统和Burst编译器构建的。此更新还提高了在屏幕上有多个使用此工具进行动画的角色时的性能。
注意:此版本与2018.3不兼容。对于使用Unity 2018.3的项目,请继续使用2D动画软件包v2.0。
所有2D物理查询现在允许您提供一个结果缓冲区作为.Net的“List”,而之前您需要一个数组。这与数组具有相同的优点,即如果列表的容量足够大以容纳查询结果,则不会分配任何内存。它提供了额外的优点,即列表容量会自动增加(伴随内存分配),以确保它可以容纳所有查询结果,同时仅分配所需的内存。如果您重用相同的列表,分配将保持在最低限度,最终不会再发生分配。
Unity发布包括TECH流和长期支持(LTS)流。
TECH流包括所有最新功能,每年有三个主要版本。今年的TECH流版本是2019.1、2019.2和2019.3,每个版本都增加了新功能和功能。

2018.3是2018.x TECH流周期中的最后一个版本,随着此版本的发布,它成为LTS流的一部分,并具有新的版本号(2018.4)。这标志着两年支持计划的开始。
与TECH流不同,LTS流将不会有任何新功能、API更改或改进。相反,它将解决崩溃、回归和影响更广泛社区的问题、主机 SDK/XDK 或任何可能阻止大量开发者发布游戏的重大问题。
每周发布 TECH 流的修复程序,而每两周发布一次 LTS 流的修复程序。LTS 流适用于希望在稳定版本上长期开发和发布游戏/内容的开发者。另一方面,TECH 流适用于希望使用最新功能并访问最新 Unity 功能的开发者。
首先,特别感谢我们的测试社区使用所有新功能并提供出色的反馈,这帮助我们最终确定并发布了 2019.1。
如果您还不是测试者,请考虑成为一名。您将提前获得最新新功能的访问权限,并可以确保您的项目与新版本兼容。您还可以通过在我们的 论坛 或 亲自 与我们的研发团队分享反馈来影响 Unity 的未来。此外,您将有机会受邀参加 Unity 活动并赢得独家周边。
首先 下载我们的最新 Alpha 或 Beta,并查看此 如何成为有效测试者的指南。如果您希望收到有关测试版新闻、更新和技巧的偶尔电子邮件,请在 这里 注册。
完整版本包括近 300 个新功能和改进——太多无法在这里提及。您可以随时在 发行说明 中找到新功能、改进和修复的完整列表。
