以下是针对程序员工具的主要更新的概述。有关完整详情,请参阅发行说明。
序列化改进
新的SerializeReference属性让您能够将C#类序列化为引用而不是值类型。这意味着您可以让POCO(普通旧式C#对象)相互引用,从而简化表达和管理复杂数据结构(例如图和树)的代码。
此外,它还支持字段包含多态数据。例如,类型为List<IAnimal>的列表可以包含狗(class Dog : IAnimal{})和猫(class Cat : IAnimal{})。
现在,标记为序列化为引用的字段可以从根本上表达null值。以前,序列化null字段将始终使用该类型的默认构造函数对其进行反序列化。
以前,非Unity类型的序列化将忽略多态。在Unity 2019.3中,多态序列化允许您维护以前无法完成序列化过程的对象引用,并更正确地引用继承链。

通过可配置的进入游戏模式加快迭代速度
当前,在Editor中进入游戏模式时,Unity将执行两个操作:重置脚本状态(域重新加载)和重新加载场景。这需要一些时间,当您的项目变得更为复杂时,Unity Editor进入游戏模式的速度可能会变慢。因此,我们在Project Settings > Editor > Enter Play Mode options中引入了可配置的进入游戏模式(实验性功能)。
这些选项允许您在没有代码更改时从“进入游戏模式”进程禁用域和/或场景重新加载。根据我们的测试结果,更改这些设置可以节省50-90%的迭代时间(具体取决于您的项目)。
有关在禁用域重新加载后如何正确修改脚本的更多详细信息,请参阅文档中的如何配置游戏模式。
如果您想在进入游戏模式前重置游戏状态,还可以通过API和回调来访问该功能。
目前,该功能处于实验阶段,我们期待在论坛上听到您的反馈。

PhysX库从v3.4升级到v4.1
我们将PhysX库从v3.4升级到了v4.1。这包括新的Temporal Gauss-Seidel解算器,可使关节对过度拉伸有更强的抗性,并避免以前在模拟过程中看到的某些不稳定行为。要启用新的解算器,请转到Project Settings > Physics。
我们还公开了新的粗筛阶段自动框修剪算法,该算法可自动计算世界边界和细分数量。这是对现有多框修剪算法的升级。
此外,桌面平台还提供了更快的网格中间阶段算法。它不需要构建资源密集型加速结构(R树),这对于运行时生成的内容很有用,因为它将减少MeshCollider的实例化时间。
此外,我们还添加了一个新的API,以允许对MeshCollider的网格延迟烘焙。您可以将计算密集型网格烘焙过程隐藏在加载屏幕或过渡场景(例如冒险游戏中的对话场景)中。该API是线程安全的,因此您可以从主线程(包括通过C#作业系统)调用该函数,以同时烘焙多个网格。
有关更多信息,请参阅NVIDIA的PhysX 4.1 SDK指南中的“从PhysX SDK 3.4迁移到4.0”。

性能分析器改进:可配置的帧数
在2019.3之前,通过“Profiler”窗口调查性能时,您一次可以查看300帧的分析数据。有时,这无法给您足够的时间捕获您真正关心的帧。
可配置的帧数让您可以扩展该捕获窗口。现在,您可以在“Preferences”窗口中配置需要“Profiler”窗口显示的帧数(300-2000)。

性能分析器改进:Player中的深度性能分析支持
通过此更新,您可以在“Build”窗口或BuildPlayer API中为所有Player启用深度性能分析支持。
构建具有深度性能分析支持的Player时,您可以记录进入和退出C#方法时的时间戳。但是,该C#检测可能会带来性能开销,因此我们添加了按Player将其关闭的选项。

性能分析器改进:Player中的托管分配调用堆栈支持
托管分配跟踪和分析是Unity性能分析器的一项重要功能。
连续的托管分配会引发垃圾回收(GC)操作,导致多帧延迟,影响游戏的流畅度。在使用Unity开发游戏时,了解分配的发生时间以及它们在代码中的起源是必不可少的信息。
在2019.3中,我们在Player中引入了托管分配的调用堆栈。这让您可以在对Player进行性能分析时查看导致GC分配的C#函数。
可以使用“Call Stacks”开关启用该选项。

Addressables
该版本包括新的Addressable Asset System(即Addressables),它让您可以轻松地通过“地址”加载资源,同时通过简化内容包创建和部署来处理资源管理开销。简而言之,Addressables使您的团队能够有效地管理复杂的实时内容。
NetCode
DOTS示例中使用的FPS网络代码是建立在DOTS之上的,可轻松创建具有类似架构的网络游戏。它包括客户端预测、授权服务器、插值和滞后补偿。
通过Tim Johansson的Unite演讲了解FPS网络代码。