版本:Unity 6 (6000.0)
语言:English
Unity 6 的新增功能
Unity 2023.2 的新增功能

Unity 6 预览版的新增功能

了解自 2023.2 以来 Unity 6 预览版中发生的变化,并查看受影响区域的文档。

要详细了解此 Unity 版本的新功能、更改和改进,请参阅Unity 6 预览版发行说明

要查找其他版本的发布说明,请参阅Unity 下载存档

如果您要从 2023.2 升级现有项目,请阅读升级到 Unity 6 预览版的指南,以了解您的项目可能会受到哪些影响。

编辑器和工作流程

  • 添加了一个穿透菜单,您可以使用它来选择与其他游戏对象重叠的游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路径点等。游戏对象的功能由附加到它的组件定义。 更多信息
    参见术语表
    。要打开穿透菜单,请在场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,放置环境、障碍物和装饰,从本质上讲是分段设计和构建游戏。 更多信息
    参见术语表
    视图中按住Ctrl+右键单击。穿透菜单会显示光标下所有可选游戏对象的列表。
  • 为 Steam ID 提供程序编辑器设置添加了Additional App IDs,以支持多个 App ID。
  • 引入了构建配置文件,以便为每个目标平台创建多个自定义构建配置。
  • 构建设置窗口已被构建配置文件窗口取代,因此构建配置文件诊断复选框不再可用。
  • 集成了新的构建配置文件图标。
  • 修改了创建菜单,用三个单独的选项替换了 C# 脚本菜单项
    • MonoBehaviour 脚本
    • ScriptableObject 脚本
    • 空白脚本
  • 改进了创建菜单,以减少菜单根目录下的项目数量。菜单现在按字母顺序排列,并且几乎所有项目现在都在一个类别中。

UI 工具包

  • 添加了缺失的UxmlAttribute 转换器以支持 UXML 创作:GradientAnimationCurveToggleButtonGroupState、无符号整数和无符号长整数。
  • PropertyField中添加了对ToggleButtonGroupState序列化属性的支持。
  • 原生文本生成器重写。使用文本生成器,您可以使用各种语言和脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性并以任何您喜欢的方式响应用户输入。 更多信息
    参见术语表
    ,例如阿拉伯语和希伯来语等从右到左 (RTL) 语言。
  • UI(用户界面) 允许用户与您的应用程序交互。Unity 目前支持三个 UI 系统。 更多信息
    参见术语表
    工具包动态图集添加了一个调试器。
  • 在 UXML 和 UI Builder 中添加了对深度嵌套属性覆盖的支持。
  • 添加了使用搜索的类型选择器。
  • 在 UI Builder 库中添加了一个搜索字段。

实体

  • 添加了对UnityObjectRef<>的序列化支持,以启用对 Unity 资源的非托管引用。例如,您可以将UnityObjectRef<Texture>放在非托管IComponentData上,而不是将纹理放在托管IComponentData上。
  • 创建菜单添加了以下类型模板:
    • IComponentData
    • ISystem
    • IJobEntity
    • 烘焙器
  • 更改了实体存储方式,为实体和游戏对象工作流的合并做准备。实体 ID 现在是全局唯一的,您现在可以将它们有效地从一个实体世界移动到另一个实体世界。这不会影响 Unity 6 中的 ECS 工作流,但它确实通过始终显示精确的实体来消除调试歧义。
  • 对实体层次结构窗口应用了以下修复
    • 您可以在层次结构中选择实体和系统。
    • 修复了在有效用例中从层次结构视图中删除实体后失败的无效范围检查。
    • 阻止实体层次结构在实体被销毁时抛出异常。
    • 实体层次结构现在在场景被卸载时会删除场景和子场景的所有节点。
    • 从实体层次结构中进入预制件一种资产类型,允许您存储一个完整的游戏对象,包括组件和属性。预制件充当模板,您可以从中在场景中创建新的对象实例。 更多信息
      参见术语表
      时,不再抛出异常。
  • 改进了烘焙以及在包含大量现有类型的世界中创建原型和实体查询的性能。
  • 改进了 LocalToWorld 系统和非脏层次结构的性能。
  • 修复了在启用组件上使用WithNone<T>EntityQuery未插入必要的作业依赖项的问题。
  • EntityQuery单例方法现在可以正确处理查询包含可启用组件的情况。
  • 修复了内存泄漏问题,例如影响世界反序列化和内容交付的问题。
  • 修复了在使用System.API的系统中定义的作业中的断点。

图形

  • 添加了 GPU 常驻绘图程序,它会自动使用BatchRendererGroup API 使用 GPU 实例化来绘制游戏对象。这减少了绘制调用次数并释放了 CPU 处理时间。
  • 为 GPU 常驻绘图程序添加了对 SpeedTree 游戏对象的支持。
  • 如果实例与 GPU 常驻绘图程序兼容,则添加了对 GPU遮挡剔除一个禁用渲染对摄像机不可见(被遮挡)的游戏对象的流程。 更多信息
    参见术语表
    的支持,包括小型网格的剔除。
  • BatchRendererGroup API 添加了一个新的每个批次层过滤设置。您可以使用此设置来剔除特定批次。
  • 优化了 URP 和 HDRP 中体积框架的 CPU 性能,以提高低端硬件上的效率并允许更精确地控制质量设置。
  • 构建配置文件>资产导入覆盖中添加了强制不压缩纹理压缩设置,该设置强制所有纹理禁用压缩并重新导入。
  • 添加了一个IRenderPipelineResources接口,允许您在图形设置窗口中添加新的设置组。
  • 更新了默认的IRenderPipelineGraphicsSettings检查器一个 Unity 窗口,显示有关当前选定的游戏对象、资产或项目设置的信息,允许您检查和编辑值。 更多信息
    参见术语表
    以在修改图形设置中的值时触发通知。
  • IRenderPipelineGraphicsSettings中添加了一个自定义菜单。
  • CustomPostProcessOrder添加了 UI 工具包支持。
  • 添加了为 URP 和 HDRP 缓存渲染图编译的选项。

URP

有关 URP 中新功能和改进的完整描述,请参阅URP 的新增功能

  • 为主要光源和附加光源添加了8192x8192选项到阴影纹理分辨率。
  • 在 Forward+ 渲染路径渲染管线用于渲染图形的技术。选择不同的渲染路径会影响光照和阴影的计算方式。与其他渲染路径相比,某些渲染路径更适合不同的平台和硬件。 更多信息
    参见术语表
    中添加了对中央凹渲染的支持。
  • 添加了摄像机一个组件,它创建场景中特定视点的图像。输出要么绘制到屏幕上,要么作为纹理捕获。 更多信息
    参见术语表
    历史记录纹理管理器和用于访问每个摄像机历史记录纹理的基本接口。历史记录纹理被包装并存储在包含所有纹理、附加数据和特定于该历史记录的 API 方法的类型中。历史记录纹理对于渲染算法很有用,这些算法累积跨多个帧的样本或使用前几帧的数据作为输入。
  • 将自适应探针体积 (APV) 光照场景混合添加到 URP。
  • 添加了一个新的配置包,允许您覆盖屏幕上可见的最大光源数量。
  • 添加了每个摄像机的颜色和深度历史记录以及自定义渲染通道的历史记录访问。
  • 添加了渲染图查看器。通过窗口 > 分析 > 渲染图查看器菜单访问它。该工具有助于可视化和调试渲染图框架中渲染通道的资源使用情况。
  • 在渲染调试器中添加了六个纹理图级流调试视图。这些视图位于渲染选项卡下的纹理图级流中。可用的调试视图为
    • 纹理图级流性能
    • 纹理图级流状态
    • 纹理图级流活动
    • 纹理图级流优先级
    • 纹理图级数
    • 纹理图级比率
  • 添加了 C# 脚本模板以创建一个使用自定义VolumeComponent后期处理在图像显示在屏幕上之前应用滤镜和效果来改善产品视觉效果的过程。例如,可以使用后期处理效果来模拟物理摄像机和胶片属性,例如 Bloom 和景深。 更多信息 post processing, postprocessing, postprocess
    参见术语表
    ScriptableRendererFeature
  • 为 URP 添加了 APV 天空遮挡支持。
  • 添加了对空间时间后期处理 (STP) 上采样解决方案的支持。
  • Unity 6 中用于 URP 的新渲染图系统自动化运行时资源优化,简化内存使用并提高性能,尤其是在移动 GPU 上。其更严格的 API 指南最大程度地减少了渲染错误和性能问题。原生渲染通道 API 和全面的调试查看器的集成有助于有效地进行故障排除和资源管理。此外,新的 ContextContainer 类提供了对渲染资源的简化访问,从而提高了复杂项目中的易用性和控制性。
  • 此 URP 版本实现了Alpha 处理设置(URP 资产 > 后期处理 > Alpha 处理)。启用此设置后,URP 会将后期处理输出渲染到具有 Alpha 通道的渲染纹理中。以前,URP 中的后期处理工作流会在最终输出中丢弃 Alpha 通道(将 Alpha 值替换为 1)。渲染目标需要一种具有 Alpha 通道的格式。摄像机颜色缓冲区格式必须是 SDR(HDR 关闭)的 RGBA8 和 HDR(64 位)的 RGBA16F。您可以使用URP 资产 > 质量中的设置配置格式。

HDRP

有关 URP 中新功能和改进的完整说明,请参阅HDRP 中的新增功能

  • 添加了对覆盖材质属性的支持,例如平滑度、漫反射和法线贴图一种凹凸贴图纹理类型,允许您为模型添加表面细节,例如凸起、凹槽和划痕,这些细节会捕捉光线,就像它们是由真实几何体表示的一样。
    参见术语表
    ,以便于材质和灯光调试。HDRP 中的材质覆盖功能可通过路径追踪器管道渲染时渲染调试器的灯光面板使用。
  • 将天空遮挡功能添加到自适应探测体积 (APV),以允许使用静态探测体积进行一天中的时间变化。
  • 禁用将烘焙数据存储为自适应探测体积 (APV) 中的流式资产,以使其与资源包和 Addressables 兼容。
  • 添加了 AMD FidelityFX 超分辨率 2 (FSR2) Unity 脚本绑定和 HDRP 集成。
  • 改进了现有的 Mipmap 流式调试视图并添加了更多视图。HDRP 中的当前产品与 URP 提供的产品一致。
  • 添加了对空间时间后期处理 (STP) 上采样解决方案的支持。

多人游戏

面向游戏对象的网络代码

  • 在面向游戏对象的网络代码中添加了分布式权限模式,客户端在游戏会话期间对生成的网络代码对象拥有分布式所有权或权限。使用分布式权限,客户端拥有管理权限来生成网络对象,该对象会向云状态服务发出通知并将状态更新传达给所有连接的客户端。一个高度优化的云状态服务维护客户端之间网络会话的整体状态。
  • 添加了一个新的 RPC 属性,它可以执行服务器和客户端 RPC 的功能,并启用客户端到客户端的 RPC。
  • 添加了许多实用程序方法,包括NetworkManager.OnConnectionEvent-ServerIsHost-InstantiateAndSpawn 等。

面向实体的网络代码

  • 添加了对游戏对象渲染调试包围盒的支持。
  • 添加了 NetCodeConfig 可脚本化对象,其中包含大多数 NetCode 配置变量,您可以自定义这些变量而无需修改代码。
  • 您现在可以通过以下方式禁用自动引导
    • 在 ProjectSettings 中禁用自动引导。
    • 将新的OverrideAutomaticNetcodeBootstrap MonoBehaviour 添加到您的第一个构建场景中。
  • 添加了AlwaysRelevantQuery,您可以使用它来指定相关性的通用规则,而无需逐个指定幽灵。
  • 添加了 BatchScaleImportanceDelegate,这是一个新的重要性缩放函数版本,它可以分批工作。无需同时设置 ScaleImportance 和 BatchScaleImportance 函数指针。如果设置了 BatchScaleImportance,则它是首选。

多人游戏模式

将多人游戏模式更新到 1.0 版。使用它测试多人游戏功能,无需离开 Unity 编辑器。有关更多信息,请参阅多人游戏模式文档

专用服务器

发布了专用服务器包,您可以使用它在服务器和客户端角色之间切换项目,而无需创建另一个项目。有关更多信息,请参阅专用服务器包文档

工具

将多人游戏工具包更新到 2.1.0 版,添加网络场景可视化作为新的可视化调试工具。有关更多信息,请参阅多人游戏工具文档

示例

  • 添加了专用游戏服务器示例,以演示多人游戏模式和专用服务器如何与面向游戏对象的网络代码一起工作。
  • 添加了分布式权限示例,该示例将面向游戏对象的网络代码中的分布式权限网络模型集成在一起。

包管理器

改进了项目清单每个 Unity 项目都有一个项目清单,它充当包管理器的入口点。此文件必须位于<project>/Packages目录中。包管理器使用它来配置许多内容,包括该项目的依赖项列表,以及查询包的任何包存储库。更多信息
参见术语表
文件的行为,如果文件为空或充满空格,则使用默认依赖项重新填充它们。

粒子

  • 为粒子轨迹添加了自定义顶点流功能。
  • 添加BakeTextureBakeTrailsTexture 脚本方法。

平台

Android

  • 添加了一个新的构建设置,用于在将.aab 文件上传到 Google Play 商店时将调试符号嵌入应用程序包中。您可以选择将符号包作为 zip 文件与您的.apk.aab 文件分开上传。您可以使用.so.sym.so.dbg 和旧版.so 扩展名创建符号文件。
  • 添加了一个新的播放器设置,用于在符号的包大小超过指定阈值时显示警告。
  • .androidlib 插件在 Unity 之外创建的一组代码,用于在 Unity 中创建功能。您可以在 Unity 中使用两种类型的插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和原生插件(平台特定的原生代码库)。更多信息
    参见术语表
    检查器中添加了一个新属性,用于指定unityLibrary 的依赖项。您现在可以将.androidlib 配置为依赖于unityLibrary,从而通过覆盖UnityPlayerActivity 来扩展活动。

iOS

  • 添加了.xcframework 插件支持。
  • 播放器设置允许您为 Unity 生成的最终游戏设置各种特定于播放器的选项的设置。更多信息
    参见术语表
    中删除了自定义 XIB 启动屏幕类型。

visionOS

添加了对 Apple 的 visionOS 平台的支持。

Web 平台(以前为 WebGL)

  • 在 Web 平台上实现了以下LocationService 方法和属性
    • Start()
    • Stop()
    • isEnabledByUser
    • lastData
    • status
  • 添加了在 Unity 播放器之间复制和粘贴的功能。

  • 添加了对WebAssembly 2023 的支持。有关更多信息,请参阅WebAssembly 2023。WebAssembly 2023 包括对高达 4GB 堆内存的支持,并且是以下 WebAssembly 语言功能的集合
    • WebAssembly 原生异常
    • WebAssembly 单指令多数据 (SIMD)
    • 优化的数据操作
    • BigInt
    • WebAssembly.Table
    • 非陷阱浮点数到整数转换
    • 符号扩展 
  • 实现了以下 LocationService 方法和属性
    • GetLastHeading()
    • SetHeadingUpdatesEnabled()
    • IsHeadingUpdatesEnabled()
    • GetHeadingStatus()
    • IsHeadingAvailable()
  • 添加了对指南针 API 的支持。

  • 添加了对移动浏览器的支持。

  • 实现了 Emscripten 3.1.38 工具链。

平台图形

添加了对间接调度光线(DXR 1.1 的一部分)的支持。该方法类似于RayTracingShader.Dispatch,但三个调度维度是从 GraphicsBuffer 中检索的。添加了RayTracingShader.DispatchIndirect 和新的CommandBuffer.DispatchRays 签名。添加了SystemInfo.supportsIndirectDispatchRays 功能状态。

ProBuilder

  • 创建了 ProBuilder 工具上下文,您可以在场景视图您正在创建的世界中的交互式视图。您使用场景视图来选择和放置场景、角色、摄像机、灯光以及所有其他类型的游戏对象。更多信息
    参见术语表
    中的工具叠加层中激活它。ProBuilder 工具上下文在场景视图中启用特定于 ProBuilder 的操作。
  • 删除了 ProBuilder 窗口。与场景视图上下文菜单结合使用的 ProBuilder 工具上下文为 ProBuilder 操作提供了更简化的工作流程。
  • 将顶点、边和面编辑模式移动到场景视图中的工具设置叠加层。要在工具设置叠加层中显示 ProBuilder 编辑模式,请在工具叠加层中启用 ProBuilder 工具上下文。
  • 将依赖于元素选择的 ProBuilder 操作(例如桥接、焊接顶点和扩展选择)移动到场景视图上下文菜单(当工具叠加层中激活 ProBuilder 工具上下文时)。
  • 将应用于整个 ProBuilder 网格Unity 的主要图形基元。网格构成您 3D 世界的重要组成部分。Unity 支持三角形或四边形多边形网格。Nurbs、Nurms、细分曲面必须转换为多边形。更多信息
    参见术语表
    组件的 ProBuilder 操作(例如导出、细分和中心枢轴)移动到场景视图上下文菜单
  • 将创建和编辑工具移动到工具叠加层。
  • 为大多数 ProBuilder 操作添加了预览选项。
  • 将这些工具选项从 ProBuilder 工具栏Unity 编辑器顶部的按钮和基本控件行,允许您以各种方式与编辑器交互(例如缩放、平移)。更多信息
    参见术语表
    移动到工具设置叠加层
    • 选择隐藏
    • 方向:法线
    • 矩形:相交
  • 改进的创建工具
    • 使用创建形状工具后按住Shift 键可创建您刚刚创建的形状的副本。
    • 使用创建多边形后,您现在可以绘制多个形状而无需离开工具。

探查器

发布了内存探查器帮助您优化游戏的窗口。它显示在游戏的各个区域花费了多少时间。例如,它可以报告渲染、动画或游戏逻辑中花费的时间百分比。更多信息
参见术语表
1.1.0 版。有关详细信息,请参阅内存探查器包文档

着色器图

  • 添加了一个新的示例内容包,可以通过包管理器安装。这些示例包含着色器在 GPU 上运行的程序。更多信息
    参见术语表
    图中大多数节点的描述、示例和分解。这些示例可帮助您了解节点的内部工作原理,并查看其工作方式和使用方法的示例。
  • 添加了用于添加新节点和切换子窗口可见性的新快捷方式,并将几个现有快捷方式移动到快捷方式管理器。
  • 在用户首选项中添加了缩放步长选项。
  • 添加了可自定义的热图颜色模式,默认情况下,该模式显示着色器图中每个节点的估计性能影响。
  • 将功能示例添加到着色器图,向用户展示如何在着色器图中实现特定效果。

SpeedTree

添加了 SpeedTree9Importer,它支持 SpeedTree Modeler 9 导出的 .st9 文件,并包括以下内容

  • 支持 SpeedTree Games 风和 SpeedTree 遗留风效果。
  • 能够通过导入器设置配置风力强度和方向响应能力。
  • 用于内置(.cg)、URP 和 HDRP 渲染器(.shadergraph)的新 SpeedTree9 着色器。
  • 用于新风效果的新着色器,但灯光没有重大变化。

版本控制

在 Unity 的版本控制用于管理文件更改的系统。您可以将 Unity 与大多数常见的版本控制工具结合使用,包括 Perforce、Git、Mercurial 和 PlasticSCM。 更多信息
参见 术语表
功能中添加了一个新的选项卡视图,用于列出和管理锁。

VFX 图形

  • 改进了着色器图形跨平台工作流程。
  • 现在可以从黑板面板处理内置和自定义属性。
  • 允许对具有公开纹理或图形缓冲区的 VFX 进行实例化渲染。
  • 条带现在支持“间接绘制”选项。“间接绘制”仅渲染活动的粒子,而不是全部容量。
  • 添加了对条带中每个粒子的排序的支持。
  • 在 VFX 窗口中添加了新的性能分析/调试面板。
  • 在使用 URP 的 VFX 中添加了摄像机缓冲区访问支持。
  • 支持在着色器图形中声明的ShaderKeyword
  • 重做了翻书播放器块。
  • 添加了碰撞当物理引擎检测到两个游戏对象的碰撞体接触或重叠时,就会发生碰撞,前提是至少一个具有刚体组件并且处于运动状态。 更多信息
    参见 术语表
    事件,允许在接触时执行特定过程。
  • VFX 图形中的快捷方式进行了以下改进
    • 在全局 Unity 快捷方式窗口中注册了快捷方式。
    • 在可能的情况下,将快捷方式与着色器图形同步。
    • 添加了新的快捷方式。
  • 为条带添加了粒子计数回读功能,这也允许条带进入睡眠状态。
  • 为条带启用了视锥体剔除。

XR

添加了对 Vision Pro 上的中心凹渲染的支持。

其他资源

Unity 6 的新增功能
Unity 2023.2 的新增功能