在 2024 年 7 月 24 日的 Unite Shanghai 2024 技术专场演讲中,Unity 高级技术产品经理 Jeff Riesenmy 带来演讲 Unity 6 and Beyond: A Roadmap of Unity Engine and Services。作为本次 Unite 首场专题演讲,他介绍了 Unity 引擎的最新进展及其配套的工具和服务,帮助中国开发者制作出精美、沉浸感十足的游戏,不断给玩家带来惊喜。本文为演讲内容全文翻译。
大家好,非常感谢今天大家的到来。我非常高兴能够和大家聊聊 Unity 6 的路线图计划,并稍微展望一下未来的内容。在我们开始之前,先请大家看一下我们的安全港声明。本场演讲包含了我们的未来计划,所以请不要仅仅基于这些未来计划做出购买决策,因为这些计划随时可能会发生变化。
我是 Jeff Risenmy,负责 Unity 引擎内容管线的产品经理。我很高兴能在这里介绍 Unity 引擎 2024 年的路线图,并稍微预览一下 2025 年及之后的一些内容。
在我们深入讨论之前,先来看看最近发生了什么。我们去年发布了 Unity 2022 LTS 版本,并且这个最新版本的采用情况非常好。截至 2024 年 6 月,超过 65% 的活跃项目都是在 Unity 2022 LTS 中完成的。并且令人欣慰的是,随着项目数量的增加,我们也大大提高了引擎的质量。与以前的版本相比,我们发现随着时间的推移,报告的问题越来越少。我们将继续每两周发布一个新版本,并将在未来一段时间内为生产中使用的 Unity 2022 LTS 提供支持,确保创作者有信心继续构建他们的项目,直至项目发布。
将目光转向 Unity 6,我们将在编辑器和运行时中更新或添加了 50 多项主要功能,并在编辑器中进行数百项小的改进。Unity 6 预览版已于 5 月 1 日发布,创作者们将有机会亲身体验我们今天要与大家分享的大部分内容。
看到像你们这样的创作者展现了这么多不同的视觉风格、游戏类型和平台,真的非常令人惊叹,我们真的很期待大家接下来的作品。
Unite Shanghai 2024 Made With Unity 游戏大赏
创建沉浸式世界
在过去的七年中,我们一直在逐步构建新一代的渲染技术,而你们中的大多数人可能对这些技术并不陌生。首先是可编程渲染管线(SRP),在 Unity 2022 LTS 和 Unity 6 中,我们一方面将重点放在整合 SRP 的通用功能上,性能工具、可扩展性、着色器和视觉特效制作工具,以及跨平台的视觉保真度。
与此同时,我们还努力强化每条渲染管线的独特价值。对于通用渲染管线(URP),这意味着移动优化、定制化,以及 2D 和 VR 渲染。对于高清渲染管线(HDRP),这意味着基于物理的高清渲染和环境。Unity 6 将通过一系列核心的新功能和改进来实现这一愿景,我将在接下来的几张幻灯片中与大家分享。通过这些改进,我们可以在启动新项目时将可编程渲染管线作为默认的渲染选择,但值得注意的是,内置渲染管线仍将在 Unity 6 周期中得到维护,这将比当前的 LTS 周期更长。
2023 年在 PC 和主机上发布的游戏中,约有 90% 采用了可编程渲染管线。在移动端和 XR 平台上,2023 年发布的游戏中有 50% 以上使用了我们的新渲染技术。正是这些在制作游戏的创作者们提供的反馈,影响了 Unity 6 版本的发布。
但在大多数作品中使用并不意味着它易于使用或学习。Unity 2022 LTS 和 Unity 6 的一个重点是提供上手使用需要的所有材料。首先是 URP 3D 示例项目,包含 4 个场景和 4 种视觉风格,可在各种平台上部署。其次是 2D Happy Harvest 项目,它展示了如何利用动态光照、阴影、瓦片地图和 URP 2D 渲染器的其他功能制作精美的 2D 游戏。最后,制作游戏还包括创建你自己的特效,在 Unity 6 中,我们的每个图形包都包含示例项目,可用于学习和开始使用自定义通道、后处理、着色器、VFX、体积光,都可以通过编辑器中的 Package Manager 直接访问。
在几乎所有的制作中,首要要求几乎总是更好的性能。在 Unity 6 中,我们将大部分图形开发资源用于优化渲染器,并彻底改变了渲染方式。
我们将引入三项全新的突破性技术来提升性能。首先,通过新的 GPU Resident Drawer,我们改变了向 GPU 发送场景的方式,以节省 CPU 的处理时间,并以前所未有的速度直接在 GPU 中渲染整个场景。其次,由于现在的场景部分是在 GPU 上处理的,因此 GPU 遮挡剔除系统可以自动放弃渲染隐藏的网格。第三,在过去几年里,图像增强方面出现了很多创新。这些技术可以在低分辨率下进行渲染,尽可能保持图像的清晰度和细节。在 Unity 6 中,我们引入了新颖的跨平台空域时域后处理图像增强功能,简称 STP。STP 能够以 4K 分辨率渲染 PC 和主机游戏内容,同时也能优化便携或移动设备上的游戏画面,使它们在高像素密度的屏幕上依然保持高质量效果。
Unity 的另一个关键优势是可扩展性。在 Unity 6 中,我们将进一步优化可扩展性。新的 URP Render Graph 会自动重新排列渲染通道以优化帧资源,这对性能和功耗非常重要,尤其是在移动设备上。Render Graph 也是一个可扩展的框架,因此它甚至能帮助你制作自定义的特效。现在,技术美术师还可以使用 Shader Graph 更轻松地创建自定义的后处理效果。VFX 艺术家也将不再受限于 VFX Graph 提供的节点,他们现在可以创建自定义 HLSL 块,以创建集群行为、流体,或其他模拟等高级功能。
为了支持扩展和优化内容,我们已经提供了很多工具。但 Unity 6 还提供了一些额外的工具:Render Graph 查看器可帮助你分析不同通道的构建方式及其资源消耗情况;Shader Graph 热图和 VFX Graph 性能分析工具可帮助你了解着色器或 VFX 的瓶颈。
在视觉方面,保真度的一个关键因素是全局光照。在 Unity 6 中,我们需要建立一个能够在支持的所有平台上良好扩展的系统,从移动平台到高端 PC 和主机上,这个系统就是自适应探针体积(APV)。全局光照在探针内进行预计算以提高运行时效率,探针可被自动放置,便于快速迭代。探针在每个顶点或像素上进行评估,从而能够高效地为大物体提供光照,同时保持很高的视觉效果。探针可以减少对光照贴图的需求。有时甚至可以完全取代光照贴图,它们可以扩展视觉保真度,并提供出色的性能。
通过集成的流式加载系统,它可以让创作者构建大型世界。该系统支持不同的光照场景,这些场景可以单独甚至混合烘焙。通过存储天空遮挡,即使是一个场景也能实现一天中不同时段的效果。
为了支持这一切,我们重新构建了烘焙引擎。现在可以利用更低规格的 GPU 来加速光照贴图和自适应探针体积烘焙。
几乎所有基于现实世界的游戏或内容都需要高质量的水和天空,而为了与 HDRP 的所有其他高端功能一起正常工作,开发和维护这些水和天空可能非常昂贵。在 Unity 6 中,任何人现在都可以在几分钟内添加它们,而且水和天空都可以扩展和定制。水系统包括水流、浮动物体泡沫发生器、波浪或河流变形器、船体隔离器、水下渲染,以及使物体与水交互的模拟 API。任何人都可以使用它们,并通过提供的示例项目和演示快速掌握。
对于天空系统,我们在 Unity 6 中的目标是提供对一天中不同时间场景的支持。我们添加了夜空和行星支持,以及可以提高远距离视觉保真度的大气散射,还增加了臭氧层,以改善昼夜之间的过渡,创造更逼真的日落和日出。
当然,为了让游戏世界充满生机,往往还需要大量的植被。去年,我们发布了 SpeedTree 9.5,由于增加了叶片(Frond)部分并改进了剪切编辑器(Cutout Editor),最新版的 SpeedTree 可帮助你创建叶片结构和纹理,新的 Projector 可让你快速在植物上添加蘑菇或雪等细节。
有了 Unity 6,创作者就可以使用我们新的导入程序快速上手,直接添加 SpeedTree 9 文件,并借助 SpeedTree 与 Resident Drawer 的集成,以及直接在 GPU 上运行的全新 SpeedTree 9 Games wind 系统,渲染带有大量植被的场景。
下一步有什么规划?SpeedTree 10 将于今年晚些时候推出,有了新的高级藤蔓工具,你就能毫不费力地制作出自然环境装饰。新的工作流程还将进一步助力你打造植物。此外 SpeedTree 10 还将实现全新的时尚且现代的用户体验。
ProBuilder 6 为设计师带来了更多工具质量的提升和改进。迭代速度更快,屏幕空间最大化,都有助于管理创作流程。这让像 Thiago Klafke 这样的关卡设计和环境艺术在线教师可以在设计关卡和测试游戏之间快速迭代。
ProBuilder 6 改进了场景内集成,减少了菜单点击次数,为创作提供了更多屏幕空间,为编辑组件提供了直观的场景上下文菜单。通过新的网格操作实时预览,这些编辑现在可以更快地迭代。这些改进共同加快了你创建沉浸式世界的工作效率。
Thiago Klafke 使用 ProBuilder 进行关卡设计和游戏迭代
说到生成沉浸式世界,我们不得不谈谈去年推出的最新 Unity 产品 Unity Muse。Unity Muse 是一套人工智能生成功能,利用我们定制的、经过严格训练的模型,用户可以在编辑器中生成无版权限制的原创资产。随着我们不断改进底层人工智能模型,生成的精灵质量将更好,风格化的 2D 图像也将更精确。
你可能已经看到,我们最近更新了 Muse Texture 模型,以提供更好的输出质量、先进的材质生成技术,和更多纹理选项。我们对今年晚些时候推出的 3D 纹理改进也感到非常兴奋。我们的人工智能研究团队开创了一种更好的方法,可以根据提示词、输入几何体或参考图像,生成高分辨率的 PBR 纹理。有了这项技术,你就能以有意义和可控的方式用多种 PBR 材质为完整的 3D 资产自动生成纹理。
除了生成艺术图像/素材,利用人工智能打造沉浸式世界原型需要的不仅仅是静态图像,如要设置交互,Muse Behavior 可以让你在编辑器中建立决策树,并提供人工智能功能来自动生成设置交互行为所需的代码。
为了充分利用这些交互和动作,Muse Animate 可以将文字提示转化为动画并应用到人形角色中。我们还在开发一种新的模型,以实现更逼真的动作,并能将你的草图和视频转化为角色动画。
最后还有音频,Muse 将于今年晚些时候推出利用人工智能从提示词生成声音特效,如运动和环境声音。
说到人工智能,让我们再来看看更先进的 Sentis。Sentis 是我们的神经引擎,它能让你导入和运行人工智能模型,从而在 Unity 游戏中解锁以前不可能实现的新功能。只需连接一次,即可部署到任何 Unity 运行时支持的平台。我们认为它将成为引擎不可或缺的组成部分。
可以看一下《Plinio》——一款新颖奇特的游戏,它采用先进的手势检测技术,由运行在 Sentis 上的人工智能模型提供支持,以实现真正独特的交互。这种深层次的交互创建出了真正的动态环境。
Sentis 目前仍处于测试阶段,是预发布包。今年秋季晚些时候,Sentis 将与 Unity 6 一起发布。
《Plinio》中的手势交互
高效的游戏创作工具
你已经创建了一个能让玩家沉浸其中的世界,但还需要实际的游戏玩法,还有用户体验,并尽可能高效地完成这一切,包括帮助团队更好地协同工作。我们在整个 Unity 6 中对生产力进行了升级,使你能够更快、更高效地进行创作。
我们对 UI Toolkit 的质量进行了多项改进。属性和样式属性有多种来源,包括父代、选择器、变量和绑定。为了明确它们的来源,我们在用户界面生成器的检查器中添加了一项功能,即在工具提示中显示这些信息以及其他有用的详细信息。我们通过添加搜索功能,解决了在用户界面生成器库中查找特定用户界面部件的困扰。该搜索功能适用于标准控件和项目资产。
之前对于嵌套在多层 UXML 资产中的属性无法进行覆盖操作,现在我们增强了这个系统,消除了这一限制。
为了加快复杂和动态用户界面的开发,我们正在引入一个高度灵活的数据绑定系统。该系统支持 ScriptableObject 和普通 C# 对象,让你完全控制数据源。它可以绑定同一对象的多个特性和样式属性,并可通过代码或用户界面生成器进行设置。该系统用途广泛,可用于编辑器和运行时用户界面。
我们不断向 UI 工具包标准库中添加新的控件,为你提供更多开箱即用的功能。其中许多新增功能,如树形视图和多列列表视图,都有助于在编辑器中显示和操作大型数据集,从而方便了从 IMGUI 的迁移。这些新控件中的大多数也能在运行时环境中运行,使你能够为游戏或应用程序构建用户界面。这种多功能性是 UI Toolkit 的众多优点之一。
当需要更具体的功能时,使用 UI Builder 创建和配置自定义用户界面元素的流程得到了简化。将元素和属性公开到 UXML 文件,进而公开到 UI Builder,现在只要用 C# 属性装饰代码即可。此外 UXML 对象还可用于将复杂数据与自定义元素关联起来,使这些数据能在 UXML 文件中序列化,并在用户界面生成器中公开。
新的 UXML 序列化功能还可以使用 property drawer 和 decorator,以在 UI Builder 的检查器中对自定义控件进行自定义显示和操作。
我们正在开发一种解决方案,为开始菜单或结果页面等复杂屏幕添加动画。为此,你需要能够创建关键帧动画,并将它们排列在一起,甚至与其他类型的动画相结合。
第二个重点领域是使用自定义着色器创建更复杂的 UI 样式,这样就可以产生高级视觉效果,如模糊、发光、阴影或其他任何视觉增强效果。
我们还注意到越来越多的玩家要求能玩到更多的游戏,因此我们正在努力添加全面的多语言支持,包括从右向左的语言如阿拉伯语和希伯来语。如前所述,我们还希望在本地化软件包中添加 UI 工具包支持,目前它只适用于 uGUI。Unity 还发布了一个 C# API 用于连接移动设备上的本地屏幕阅读器,我们将在此基础上进行扩展,以便用 UI Toolkit 制作的用户界面可以直接与这些功能兼容,同时还将增加对桌面平台的支持。
最后,你们还需要 UI 可以在世界空间中渲染。在内部的开发版本中,我们通过 Panel Settings 公开了这一功能,它现在有了一个新的 Render Mode 选项。选择 World Space 时,UI 现在可以应用 3D 变换,并完全成为场景的一部分。
实现过程中没有使用 RenderTextures,而是完全集成到了渲染链中,这使得无纹理 UI 在任何尺寸或与摄像机的距离下都能保持清晰美观。当然 UI Toolkit 的所有其他功能都能正常工作,如样式、动画和输入。我们对这些产品感到非常兴奋,迫不及待地想要提供给大家。
当然,除了闪亮的新工具和工作流程之外,我们也一直在巩固基础部分。我们将提供多种方法让你更快地开始游戏项目。除了你已经听说过的 URP 新示例项目外,我们还在输入系统包中添加了新的预设和 Project-wide 输入操作,这样你就不必再设置 WASD 了。
我们还将引入新的工具,以更好地分析作业系统,帮助你了解多线程和作业之间的复杂依赖关系。
可寻址系统(Addressables)也获得了更好的预设和平台默认设置,从而节省了创建 Asset Bundles 的重复设置任务。
现在,真正的重大改进要来了。人工智能具有巨大的潜力,可以帮助你和你的团队完成基本任务,并利用机器学习工具更快地找到解决方案。Muse Chat, Sprite, Texture, Behavior 和 Animate 将在编辑器中提供,以完善你现有的工作流程。随着 Muse 的不断完善和扩展,你将看到这些功能在编辑器中承担更多任务,并实现更深入的集成。
其中一个非常令人兴奋的例子就是 Muse Chat。随着 Chat 移至编辑器中,它也变得可以感知项目。这意味着你很快就能看到为你的特定项目量身定制的回复、解决方案和生成的代码。此外还有一整套令人惊叹的人工智能解决方案,对于你想在项目中使用的可信任的解决方案,通过 Muse 基础架构在编辑器上下文中访问将更加方便。
回到图形方面,我们简化了创建 VFX 和自定义着色器的过程,以帮助你的游戏展现独特风格。很多人每天都会花费大量时间使用 Shader Graph 和 VFX Graph,我们正在改善用户体验,为两者提供大量键盘快捷键,更好地管理属性和关键字,加快 Shader Graph 的撤销和重做操作,并改进 VFX Graph 的属性、Blackboard 和节点搜索。新的 VFX Graph 模板系统让创建新特效的速度更快,并且更容易与团队共享自己的 VFX 库。
我们不仅关注用户体验的提升,也致力于减轻学习曲线带来的难度。我们还添加了新功能,让 UI 设计师或艺术家可以使用 Shader Graph 创建动态和响应式的 UI 样式。VFX 艺术家们可以通过 URP 充分利用 VFX Graph。
为了总结关于更高效工具的这部分内容,让我们回到 AI,并谈谈我们在 Sentis 上做出的改进。不是每个人都是机器学习专家,因此我们正在努力使 Sentis 变得更加易于使用。在 1 月份,我们推出了与 Hugging Face 的集成,将通过了 Unity Sentis 验证的模型进行标记,并预先将它们转换为 Sentis 格式。你可以将这些模型导入编辑器中,它们可以直接使用。当然,这些模型都有配套的 C# 示例代码,如果你想调整模型的性能或功能,我们也有图形工具可以提供帮助。
游戏中的模型必须快速运行,即使 GPU 预算较低,也要达到 100+ FPS 的目标。为了加快推理速度,我们支持新的“神经”芯片组。如果终端用户的设备上有神经处理单元,Sentis 将自动利用这些额外的计算能力。
最后,我们最近添加了量化支持,可将庞大的模型权重从高精度浮点 32 值转换为 INT 8 或其他变量。这可以减少内存使用和计算时间,有时甚至可以减少 4 倍。
端到端的多人游戏
接下来是确保游戏在发布后继续运营,而成功的关键因素是推动玩家深度参与。不出所料,你们需要的是更好的多人游戏创作体验。在 Unity 2022 LTS 中,Unity 的多人游戏端到端解决方案集变得更加强大。Unity 6 基于排行榜、玩家匹配等功能提供了高效探索和交付各种多人游戏体验的强大方法。
Unity 有许多解决方案可以帮助满足各种多人游戏需求,我们正在开发一系列模板来帮助你上手操作。但我们也明白,当需要在项目中引入多人游戏概念时,你们往往需要技术选择方面的指导。为了帮助解决这种情况,我们正在编辑器中开发一个中心位置,即“多人游戏中心”,可以在这里设置多人游戏目标的参数,并查看与项目相关的推荐的工具、服务或学习资料。你可以直接将其中一些添加到你的项目中,并立即开始尝试使用这些多人游戏功能。
一旦有了可运行的游戏玩法,接下来的步骤就是使用多个客户端进行测试,以便通过分离的进程体验游戏。这就是 Multiplayer Playmode 将提供的功能,它能让多个客户端和服务器的编辑器实例在同一设备上同时打开,并且使用的是磁盘上相同的源资产,从而提供更高效、更快速的多人游戏开发周期。你可以从我们的休闲合作 BossRoom 示例中看到具体的工作情况。
在 BossRoom 示例中使用 Multiplayer Playmode
你的多人游戏可能需要一个服务器授权模型以防止作弊,例如在有竞争的情况下,你可以在任何 Netcode Stack 中使用 Multiplayer Playmode。这里有一个基于 DOTS 的动作竞技游戏示例,通过我们最新的竞技游戏示例项目《Megacity Metro》进行展示。在这种情况下,Multiplayer Playmode 将支持专用服务器的本地和远程部署,即使网络拓扑结构复杂,也能尽可能缩短迭代周期。
《Megacity Metro》示例展示
我们还提供了一个专用的服务器构建目标,让你可以在一个项目中同时创建客户端和服务器,从而大大缩短开发和迭代时间。我们正在添加更多的内容选择功能,将帮助你在没有自定义脚本的情况下在此过程中更进一步,并通过剥离项目客户端部分的选项帮助你尽可能精简服务器。
所有采用 Unity 引擎的多人游戏解决方案都基于 Transport 包。这个包提供了一个强大的底层网络层,你还可以利用它来构建自己的自定义 Netcode 以满足特定的游戏需求。Transport 现在支持 Unity Web,这表示你的解决方案可以在所有平台上运行。当然,Multiplayer Playmode 和专用服务器工作流程可以与你的定制解决方案一起使用。
跨平台触及更多玩家
当然,打造一款身临其境、引人入胜的游戏对于游戏的成功发行至关重要,但同时你也要确保在玩家所在的地方以他们喜欢的方式提供游戏。通过 Unity 业界领先的平台支持,你可以为 Web、移动、PC、主机和 XR(扩展现实)等平台,包括一些最热门的新设备构建内容。让我们来了解一下能够帮助你跨平台触达更多玩家的新功能。
在 Unity 6 中,我们将推出改进功能,让你在设置构建和探索新平台时更加轻松。我们从许多人那里了解到,使用自定义脚本管理构建会面临挑战,因为我们的设置过于死板,只能在项目级别进行配置。我们非常重视你们的反馈,并非常高兴推出了“构建配置文件”,让你可以灵活地为一个目标平台创建多个配置文件。对于项目的每个阶段,无论是垂直切片、演示还是最终版本,你都可以为每个配置文件设置自定义设置和场景列表。
这还不是全部,通过新的平台浏览器,我们还可以更轻松地发现和设置 Unity 支持的平台。这不仅仅是一个列表,它还是你自动为目标平台设置正确软件包和正确设置的新捷径。
将游戏发布到网络上,为你提供了一个接触大量玩家的巨大机会。从 Unity 6 开始,你就可以在任何有网络的地方运行 Unity 游戏,包括移动浏览器。你可以在本机应用程序内的 Web 视图中运行你的 Unity 游戏,也可以使用 Progressive Web App 模板,让你的游戏表现得像本机应用程序一样,并拥有自己的快捷方式。
我们还与 Meta 合作,为其小游戏平台提供支持。通过 Facebook 和 Messenger,你将有机会接触到每天都在寻找新游戏的数亿玩家。有了 Unity 6,你就可以在这个平台上轻松构建和发布基于 Web 的游戏,并大大扩展覆盖范围。
在这里,你可以看到 Coatsink 提供的原始构建与应用了我们最新小游戏开箱即用工具优化过的版本之间的对比,加载时间已经不到原来的一半。
Coatsink Tested on Pixel 5 @ 48 Mbps
通过与 Google 的战略合作伙伴关系,WebGPU 现在可以在 Unity 6 预览版中使用。有了 WebGPU 后端的早期访问权限,你可以尝试使用计算着色器、 GPU 蒙皮、VFX Graph 等 GPU 驱动的渲染技术。WebGPU 的设计目标是通过本地 GPU API 如 DirectX 12、Vulkan 或 Metal 提供现代图形加速接口,从而利用现代 GPU 功能,并将其应用于 Web 端。
现在,Unity 6 预览版的用户可以提前访问 Unity 的 WebGPU 后端,支持 macOS 和 Windows 上的 Google Chrome 和 Microsoft Edge。有关如何获得访问权限的详细信息,请访问 Unity Web 论坛。我们迫不及待地想看到各位利用这项新技术创造出的作品。
接下来,让我们回顾一下与微软公司合作的一些令人振奋的消息。在 Unity 6 中,我们为基于 Arm 的 Windows 设备添加了本机 Unity 编辑器支持,这表示你可以在更多的 Windows 设备上开发 Unity 游戏,充分利用 Arm 设备所能提供的性能和灵活性。
你还可以使用 Microsoft Game Development Kit 工具包开发 Win32 游戏。工具包中有用于制作 Windows 单机游戏的常用工具。
不仅要让你的游戏快速安装,还要在多种类型的 Android 设备上高效运行,这一点非常重要。为此,Unity 6 通过新的 Addressables Android 包支持 Play Asset Delivery。有了这项功能,你将从动态交付选项中获益。如果再与“纹理压缩目标格式化”相结合,玩家将获得为其设备定制的纹理,同时仍然保持较小的整体安装大小。
Unity 还将包括一个新的 Application Point GameActivity,由 Android Game Development Kit 工具包提供支持。通过使用 AndroidX,该系统带来了许多新优势,包括改进的线程支持和增强的可更新性。
在为主机平台开发内容时,我们对迭代速度进行了重大改进。通过 Unity 的增量构建管线,你可以在两次构建之间更快地进行迭代。场景构建完成后,后续构建将只关注增量(delta)部分,这意味着在大多数情况下构建时间会大幅缩短。
在测试 boat attack 项目时,更改脚本后 Unity 6 与 2021 LTS 相比构建时间缩短了近 50%,不做任何改动的场景构建时间从 40 秒降至 5 秒多一点。这是一项巨大的改进,将为开发过程中的迭代目标、迭代速度带来显著的好处。
最后,Unity 6 将为 XR 开发提供大量新功能,你可以在为 Meta Quest 和 visionOS 等平台进行开发时使用这些功能。
无论是想用混合现实技术扩展现有游戏,还是要制作全新的游戏,AR Foundation 都能让你以跨平台的方式将物理世界融入玩家的体验中。在 Unity 6 中,我们将扩展网格划分、遮挡、边界框和持续锚定到 Meta Quest、visionOS 和 Android 等其他平台。我们还在 ARCore 中添加了 Vulkan 支持,并针对 Meta Quest 进行了增强,从而让玩家获得更流畅、性能更强的视觉效果。
让我们超级兴奋的一项功能是 Composition Layers,这是另一种提高游戏视觉保真度的方法。这里有一个并排对比图,左边是普通纹理,右边是 Composition Layer。正如你所看到的,Composition Layer 的使用大大减少了伪影,文字更清晰,轮廓更鲜明,整体外观更好看。我们还为 Composition Layer 创建了交互式用户界面组件,让你只需极少的设置即可开始使用,或轻松转换现有的用户界面。
我们知道为 VR 游戏设置多人游戏很困难,因此我们在 OpenXR 的基础上开发了新的 VR 多人游戏模板,让设置变得更容易。这个模板充分展示了 Unity 多人游戏服务的广泛功能,让你可以直接使用专门的语音聊天、Lobby、网络交互和手部追踪功能来构建内容。
最后,对于为 visionOS 进行开发的用户来说,Play to Device 是一项变革性的功能。它利用 Unity 的 PolySpatial 技术,通过本地网络流式传输应用程序的内容,使你能够在 Unity 编辑器、visionOS 模拟器或 Apple Vision Pro 上迭代和预览内容。在 Unity 编辑器中进行的任何调整,如添加游戏对象、调整检视器值或完善 Shader Graph,都会立即实时同步到模拟器或设备上。更酷的是,如果戴着 Vision Pro 时使用这项新功能,你就可以使用 Mac 虚拟显示器在编辑器中工作,并在旁边看到你的空间内容。这是在为 visionOS 开发游戏时一种令人难以置信的全新工作方式。
实现最佳性能
我们不妨快速回顾一下过去 12 个月中在 Unity 引擎中出现的新的基础功能。我特别要谈的是实体组件系统(ECS),是我们面向数据技术栈(DOTS)的核心框架。从 Unity 2022 LTS 开始,ECS 已完全集成到编辑器中,并支持在所有平台上进行生产。ECS 架构有助于设计更灵活的代码架构,这样,像《HEROish》这样的游戏就能在制作过程中更轻松地调整游戏创意,降低重构风险。
ECS 还让你可以完全控制目标设备的硬件,这就是像《Detonation Racing》这样的游戏能够在其目标设备上提供如此激烈的游戏体验的原因。
ECS 高效的内存布局和可扩展的处理能力能够模拟更多具有复杂物理玩法的敌人,比如在《Hostile Mars》中的表现、《V-Rising》的开放世界中成千上万的动态对象,这些对象都是基于 Unity 的 ECS 架构而实现的。最后,ECS for Unity 凭借其 Netcode 堆栈和确定性为多人游戏提供了新的可能性。如果想要查看一个完全功能的演示,请查看《Megacity Metro》,这是一个可扩展、高并发、跨平台的端到端多人平台示例,我们在其中进行了超过一百名玩家的测试。
我们致力于打造 DOTS 生态系统,这可以通过当前正在开发的多个 ECS for Unity 的小版本来证明。ECS 1.1 和 1.2 已经在 Package Manager 中可用,我们正在准备版本 1.3。我们一直在听取你在生产环境中的即时反馈,并准备了许多不同的修复和改进,这些将会通过 Unity 2022 LTS 和 Unity 6 发布。
在最近的一项调查中,有 25% 的人告诉我们你们可以在生产中使用 ECS 作为解决方案。但是你们也提到 ECS 的学习曲线可能很高,因此只有不到 10% 的人能够在生产中实施 ECS。这与我们的目标相去甚远,我们的目标是为你的每个项目提供面向数据的性能。
这就是为什么我们一直在努力,以便在 Unity 6 之后的未来版本中将 GameObjects 和 Entities 更紧密地结合在一起。通过这样做,我们将在编辑器中为你提供 ECS 的强大功能,以利用其运行时的强大功能编写工作流程。这也将使你更容易在基于 GameObject 的项目中引入有针对性的 ECS 解决方案,以解决特定的性能瓶颈。在许多情况下,不需要了解或处理 ECS 的复杂细节即可获得更高的性能。
这种融合的第一个里程碑是确保项目中的每个 GameObject 都有一个与之关联的等效实体,这将简化在两种环境中对项目数据的操作。你通常需要在 GameObject 和 ECS 之间同步的最重要数据是对象转换,因此,我们正在调整转换 API 和数据结构,以提高同步性能。这将促使我们统一场景并建立工作流程,以确保无论你使用哪个系统来处理项目数据,我们都能提供完全统一的体验。
正如我前面提到的,GameObjects 和 ECS 的融合将为可扩展的项目创作工作流程带来惊人的应用。为了说明这一点,我们一直在基于 ECS 对引擎动画系统进行重大改造。额外的性能空间使我们能够在编辑器中为你提供更复杂、更动态的工作流程,并让你能够在屏幕上显示更多角色,在运行时达到前所未有的复杂程度。
我们还一直在努力重新构想世界构建的工作流程,这项工作将再次以 ECS 为基础,使我们更接近于在 Unity 中实现对大型开放世界的开箱即用支持。我们将在未来分享更多有关这些进展的信息。
说到为 100% 的 Unity 项目提供更高的性能,我很高兴地告诉大家,我们在向 CoreCLR 迁移的过程中取得了重大进展。这是 Unity 引擎核心基础现代化的又一步。
.NET 世界瞬息万变,微软发布的每一个新版本都会提升性能。通过将 CoreCLR 集成到 Unity 中,我们将为编辑器带来更快的原始速度、更简单的集成开发环境构建集成和更快的代码重载,从而大大改善迭代时间。
另一方面,新的优化和垃圾回收将显著提高运行时的原始性能。早期迹象表明效果不错,Unity 编辑器的某些部分和使用 UI Toolkit 进行的测试的运行速度提高了一倍。
我们很高兴能在未来的 Unity 版本中实现所有这些性能改进,这样无论你的专业水平如何,都能制作出更恢弘的游戏。
好了,这就是全部内容了。你在过去一小时中看到的大部分内容即将在 Unity 6 中与你见面。Unity 6 预览版已于今年 5 月发布,在今年晚些时候发布 Unity 6 之前将提供全面的生产支持。我们看了新的工具和服务,这些工具和服务加上我们对整个引擎的改进和升级,会在一定程度上解决你告诉我们的常见要求和问题。
我们对 Unity 的下一个重要版本感到非常自豪,并迫不及待地想看到你们能用它创造出什么。再一次代表我的团队感谢你与我们共度美好时光,祝大家在 Unite Shanghai 收获满满!谢谢!