Unity 6 是 Unity 的最新版。Unity 6 包含 Unity 6 预览版、2023.2 和 2023.1 中的所有功能。
要了解此 Unity 版本中的更改和已知问题,请参阅 Unity 6 发行说明。
要查找其他版本的发行说明,请参阅 Unity 下载存档。
如果要将现有项目从 2022 LTS 升级,请阅读 Unity 6 升级指南了解项目可能受到的影响。
回顾 Unity 6 在以下领域的新功能和改进:
Rigidbody2D.Slide 方法,允许 Rigidbody2D 在特定积分时间内以特定速度移动,并自动执行各种滑动、重力、滑移、方向更改和表面锚定等行为。此方法适用于所有刚体类型,包括静态刚体。它可以简单地计算新位置、即时更改 Rigidbody2D 位置(支持插值),或通过自动调用 Rigidbody2D.MovePosition() 延迟移动。此功能使角色控制器的创建变得容易。
新增了一个编辑器窗口,即可访问性层级查看器 (Accessibility Hierarchy Viewer),其中显示激活的可访问性层级及其节点。要访问可访问性层级查看器,请选择主菜单中的窗口 (Window) > 可访问性 (Accessibility) > 访问性层级视图 (Accessibility Hierarchy View)。
IPerformanceModeStatus。
为面向 Windows、OSX 和 Linux 平台以及 Dedicated Server 子目标的资源捆绑包新增了功能,因此现在构建这些资源捆绑包时与构建 Dedicated Server 播放器时收到的优化(删除纹理数据和非碰撞网格数据)相同。
实现了用于将数据保存到 .meta 文件的访问器。
新增了 Verified Solutions 计划,这是 Unity 策划的第三方资源和解决方案库。
-upmLogFile 命令行参数,用于指定 UPM 日志输出的自定义文件路径。有关更多信息,请参阅 Unity 编辑器命令行参数。Additional App IDs 以支持 Multiple App ID。PropertyCollectionAttribute,可用于实现集合的自定义绘制器。EditorWindow 类中新增了 focusedWindowChanged 回调。OneTimeSetup 和 OneTimeTearDown 持续时间。在线性色彩空间项目中,为 UI 工具包新增了强制采用伽马渲染的选项。
Gradient、AnimationCurve、ToggleButtonGroupState、Unsigned Int 和 Unsigned Long。PropertyField 中新增了对 ToggleButtonGroupState 序列化属性的支持。删除了 IMGUI 对旧版文本栈的依赖,现在 IMGUI 可以使用 TextCore 渲染和计算其指标。TextEditor 的一些成员已弃用,以适应 IMGUI 和 UITK 使用的新 TextUtilities。它们的含义相同,但名称已更改(从字段更改为属性):
TextEditor.multiline 现在改为 TextEditor.isMultiline。TextEditor.hasHorizontalCursorPos 为 nowTextEditor.hasHorizontalCursor。TextEditor.revealCursor 现在改为 TextEditor.showCursor。
UnityObjectRef<> 新增了序列化支持,以实现对 Unity 资源的非托管引用。例如,可以在非托管 IComponentData 上有一个 UnityObjectRef<Texture>,而不是托管 IComponentData 上的纹理。IComponentDataISystemIJobEntityWithNone<T> 的 EntityQuery 未插入必要的作业依赖关系的问题。EntityQuery 单例方法现在可以正确处理查询包含可启用组件的情况。System.API 的系统中定义的作业中的断点问题。
将 Unity 6 的通用渲染管线 (URP) 文档移到了 Unity 引擎手册中。例如,有关 URP 中光照的文档现在位于手册的光照部分中。
RayTracingShader.Dispatch 类似,但三个调度维度是从 GraphicsBuffer 中检索的。新增了 RayTracingShader.DispatchIndirect 和新的 CommandBuffer.DispatchRays 签名。新增了 SystemInfo.supportsIndirectDispatchRays 功能状态。BatchRendererGroup API 通过 GPU 实例化来绘制 GameObject。这样可以减少绘制调用次数并释放 CPU 处理时间。BatchRendererGroup API 新增了每批次图层过滤设置。您可以使用此设置剔除特定批次。IRenderPipelineResources 界面,允许在图形设置 (Graphics Settings) 窗口中新增设置组。更新了默认 IRenderPipelineGraphicsSettings 检视面板,以在修改图形设置 (Graphics Settings) 中的值时触发通知,并在 IRenderPipelineGraphicsSettings 中新增了自定义菜单。CustomPostProcessOrder 新增了 UI 工具包支持。BatchCullingContext.cullingFlags。BatchRendererGroup 新增了 rendererPriority 支持。CommandBuffer.BuildRayTracingAccelerationStructure 命令。新增了对 RenderGraph 和 Render Graph Viewer 的 RayTracingAccelerationStructure 支持。RayTracingAccelerationStructure 时通过 C# 或通过渲染器 (Renderer) 设置自定义标记。BakeTexture 和 BakeTrailsTexture 脚本方法。SystemInfo.supportsInlineRayTracing、SystemInfo.supportsRayTracingShaders、ComputeShader.SetRayTracingAccelerationStructure 和 CommandBuffer.SetRayTracingAccelerationStructure(ComputeShader 等)。#pragma require inlineraytracing。RayTracingAccelerationStructure.AddInstance 签名,允许将网格实例新增到加速结构以进行 GPU 光线追踪。这相当于光栅化管线中的 Graphics.RenderMesh。ImageConversion.LoadImage() 加载 EXR 数据的支持。ScriptableRenderContext.CullShadowCasters API,以便在 URP 和 HDRP 中提前启动 BatchRendererGroup 剔除作业。
有关 URP 新功能和改进的完整描述,请参阅 URP 中的新功能。
在主光源和其他光源的阴影纹理分辨率中新增了 8192x8192 选项。
新增了摄像机历史 API,允许您访问每个摄像机的历史记录纹理并在自定义渲染通道中使用它们。历史纹理指的是 Unity 在之前的帧中为每个摄像机渲染的颜色纹理和深度纹理。
向 URP 新增了自适应探针体积 (APV) 光照场景混合。
新增了全新的配置包,可覆盖可见光源的最大数量。
新增了 Render Graph Viewer 窗口。该工具可用于可视化渲染通道如何使用帧资源,以及调试渲染过程。
渲染调试器现在包含一个 mipmap 串流部分。该部分允许您检查纹理串流活动。
新增了 C# 脚本模板,用于创建使用体积组件的自定义后期处理效果。
为 URP 新增了 APV 天空遮挡支持。
新增了对空间时间后处理 (STP) 升级的支持。
新的渲染图系统改进了自定义和维护渲染管线的方式。该系统减少了 URP 使用的内存量,提高了内存管理的效率。
该 URP 版本实现了 Alpha 处理 (Alpha Processing) 设置。如果启用该设置,URP 会将后期处理输出渲染到具有 Alpha 通道的渲染纹理中。在以前的版本中,URP 通过将 Alpha 值替换为 1 来丢弃 Alpha 通道。
新增了跨平台__ HDR__高动态范围
See in Glossary 显示支持。现在,编辑器和构建的播放器在所有支持 HDR 的渲染管线和平台(包括移动端和__ XR__虚拟现实(VR)、增强现实(AR)和混合现实(MR)应用的泛指术语。支持这些形式的交互式应用程序的设备可被称为 XR 设备。更多信息
See in Glossary)上都提供完整的 HDR 色调映射和显示支持。
为探针体积的间接光照新增了每个顶点的质量级别,从而使 URP 更高效地渲染光照环境。在移动平台上,URP 不支持光照场景混合,也不支持反射探针的光照归一化。
在运动模糊体积组件中新增了摄像机和对象 (Camera And Objects) 选项。该选项使用运动矢量对移动速度超过摄像机曝光时间的对象进行模糊处理。
新增了对更多方向光 cookie 的支持。
在 URP 全局设置 (URP Global Settings) 中新增了默认体积配置文件 (Default Volume Profile) 字段。
在通用渲染管线资源中新增了体积配置文件 (Volume Profile) 字段。
为 URP 材质新增了渐晕速度运动矢量支持。
为仅基于时间节点实现顶点动画的 Shader Graph 着色器,新增了基于时间的自动运动矢量生成功能。
在 Forward+ 渲染路径中新增了对 XR 渲染和正交投影摄像机的支持。
在 Forward+ 渲染路径中新增了对渐晕渲染的支持。
新增了时间抗锯齿 (TAA) 支持。该功能与 MSAA、动态分辨率或摄像机堆叠不兼容。该功能仅支持固定分辨率,不支持时间上采样。
新增了对高动态范围 (HDR) 输出的支持。
在 URP 渲染调试器中新增了详细统计数据 (Detailed Stats) 部分。
将所有 URP 通道移植为使用 RasterCommandBuffer API。
在 SSAO 设置中新增了 AO 方法 (AO Method) 属性,您可以在其中选择交错梯度噪声 (Interleaved Gradient Noise) 或蓝色噪声 (Blue Noise) 选项。
在 SSAO 设置中新增了模糊质量 (Blur Quality) 属性,您可以在其中选择高(双边)(High (Bilateral)、中(高斯)(Medium (Gaussian) 或低(单通道川瀬)(Low (Single-Passkawase) 选项。
在 SSAO 设置中新增了衰减 (Falloff) 字段,用于控制与应用 AO 效果的摄像机之间的距离。
向 URP Forward+ 渲染路径新增了集群反射探针支持。这样可以为每个对象使用两个以上的反射探针,允许 Unity 跳过每个对象的光源和反射探针剔除,并允许实体图形和程序绘制使用反射探针。
在 URP 中新增了低代码自定义后期处理功能。
在渲染图形 API 中新增了贴花支持。
为 URP 后期处理效果新增了渲染图 API 支持。
为 2D 对象(例如精灵、碰撞体、精灵形状和 2D 动画)新增了阴影渲染支持。
为阴影投射 2D 光源新增了柔和阴影渲染。
新增了对探针体积的有限支持,没有光照数据集的插值处理,且在低端硬件上性能有限。
改进了 FXAA 质量。这一新实现提供了更好的边缘抗锯齿(消除了先前实现中出现的奇怪边缘伪影)并更好地保留了纹理质量。改进不会影响性能。现在,输出质量与中低 SMAA 预置相当,但性能更好。
有关 URP 新功能和改进的完整描述,请参阅 HDRP 中的新功能。
Unity 6 Multiplayer 功能旨在简化和加速多人游戏开发,为将来与 Multiplayer Services 集成做好准备,并支持玩家社区随着时间的推移而不断发展壮大。
新的 Multiplayer Center 让设置和开发多人游戏变得更加轻松。在生成可用于启动项目的动态模板之前,提示信息和工作流程会使用游戏的参数和需求,推荐相关软件包和服务。
您不再需要离开编辑器来设置多人游戏。个性化的交互式指导、教育资料和快捷方式让您能更轻松地进行试验,并能更早、更频繁对反馈做出响应。
新的多人游戏小部件可让您能更轻松地将多人游戏服务集成到多人游戏中。您可以将小部件作为独立包访问,也可以从新的 Multiplayer Center 访问它们。
包含了 Multiplay、Relay、Lobby、Vivox 等服务小部件,有助于更轻松地找到兼容的相关集成。例如,将 Relay 服务集成到编辑器中可以在开发过程的早期阶段更轻松地创建会话和连接用户。
新发布的 Multiplayer Services package 可以更轻松地管理多人游戏服务之间的依赖关系。例如,可以执行以下操作:
为了简化配置,会话现在直接与 Netcode for GameObjects、Netcode for Entities 和 Unity Transport 包集成。
Multiplayer Tools 包 2.2.1 版改进了 Unity 中的多人游戏开发工作流程,提升了与 Netcode for GameObjects 2.0 搭配使用的性能,并新增了对分布式授权的支持。
将 Multiplayer Tools 包更新到 2.1.0 版,新增了 Network Scene Visualization,将其作为新的视觉调试工具。有关更多信息,请参阅 Multiplayer Tools 文档。
Multiplayer Play Mode 包旨在缩短迭代周期,更轻松地验证实现选项,并在运行时进程中的早期阶段提升游戏质量。
Unity 6 中新的运行模式场景将测试周期集成到制作环境中,从而帮助您更早地为真实玩家提供首次试玩体验。
将 Multiplayer Play Mode 更新到了 1.0 版。使用它可以在不离开 Unity 编辑器的情况下测试多人游戏功能。有关更多信息,请参阅 Multiplayer Play Mode 文档。
Dedicated Server 包整合了编辑器中的专用游戏服务器工作流程,使得在本地部署 Dedicated Server 和多人游戏托管变得更加轻松。
新的多人游戏角色让您能够控制在每个构建目标中所使用的多人游戏角色(客户端、服务器):
发布了 Dedicated Server 包,可用于在服务器和客户端角色之间切换项目,而无需创建其他项目。有关更多信息,请参阅 Dedicated Server 包文档。
Netcode for GameObjects 是为 Unity 构建的高级网络库,可用于抽象网络逻辑。
Netcode for GameObjects 2.0 版本现在支持 Distributed Authority(测试版),并且包含一些改进,以促进多人游戏开发遵循最佳实践。有关 Netcode for GameObjects 的基本功能以及各个 API 和系统的实际示例的信息,请参阅多人游戏用例精简示例。
NetworkManager.OnConnectionEvent、-ServerIsHost、-InstantiateAndSpawn 等。NetworkObject 组件之前就已存在的 GlobalObjectIdHash 值。此属性会影响构建列表中包含的所有场景。NetworkManager 方法 SetPeerMTU 和 GetPeerMTU,用于对最大传输单元 (MTU) 大小 进行全面控制。此属性可用于 Netcode for GameObjects 中的自定义协议。GlobalObjectIdHash),以解决 Unity 分配无效值的问题。GenerateSerializationForTypeAttribute 方法,以确保特定类型包含在代码生成序列化过程中。GenerateSerializationForGenericParameterAttribute 方法,可用于在代码生成过程中包含由 NetworkVariable 类型包装的泛型类型。NetworkVariableSerialization 方法,可在不增加任何装箱开销的情况下改进自定义 NetworkVariable 创建。您可以使用 NetworkVariableBase.MarkNetworkBehaviourDirty 方法将 NetworkVariables 标记为“脏”。NetworkBehaviour 类型的 RPC 可序列化类泛型类型的参数。NetworkManager 事件 OnServerStarted、OnServerStopped、OnClientStarted 和 OnClientStopped,以便更好地对 NetworkManager 初始化过程进行通知。Netcode for Entities 是 Unity 面向数据的技术栈 (DOTS) 的一部分,提供了一个基于服务器权威和客户端预测的框架,可用于创建多人游戏。
Netcode for Entities 1.3 版包含多项可用性改进,并且新增了 Megacity Metro 演示游戏,展示了 Unity 6 如何更快、更轻松地设置多人游戏服务、联网车辆实现、基于规则的可配置比赛以及沉浸式玩家通信。
OverrideAutomaticNetcodeBootstrap MonoBehaviour 添加到第一个构建场景中。AlwaysRelevantQuery,可用于指定相关性的一般规则,而无需逐个幽灵指定。Added BatchScaleImportanceDelegate,它是重要性缩放函数的新版本,可以批量处理工作。无需同时设置 ScaleImportance 和 BatchScaleImportance 函数指针。如果设置了 BatchScaleImportance,则首选此属性。
改进了项目清单文件的行为,如果文件为空或全是空白字符,则使用默认依赖项重新填充它们。
.aab 文件上传到 Google Play Store 时将调试符号嵌入到应用程序包中。您可以选择将符号包作为 zip 文件,与 .apk 或 .aab 文件一起单独上传。您可以使用 .so.sym 或 .so.dbg 以及旧版 .so 扩展名来创建符号文件。.androidlib Plug-in 检视面板中新增了一个属性,用于指定 unityLibrary 的依赖关系。现在,可以将 .androidlib 配置为依赖于 unityLibrary,从而通过覆盖 UnityPlayerActivity 来扩展活动。com.unity.addressables.android),为 Addressables 提供 Play 资产交付支持。ApplicationExitInfo API,用于提供有关应用程序崩溃和应用程序无响应 (ANR) 错误的信息。GameActivity 作为默认的应用程序入口点,以便更好地控制 Android 和应用程序之间的交互。build_fingerprint 信息。
.xcframework 插件支持。
新增了对 Apple visionOS 平台的支持。
LocationService 方法和属性:
Start()Stop()isEnabledByUserlastDatastatus新增了在 Unity 播放器中进行复制和粘贴的功能。
GetLastHeading()SetHeadingUpdatesEnabled()IsHeadingUpdatesEnabled()GetHeadingStatus()IsHeadingAvailable()新增了对 Compass API 的支持。
新增了对移动浏览器的支持。
实现了 Emscripten 3.1.38 工具链。
Content-Encoding: gzip 时或 Web 浏览器存在导致无法解压缩 gzip 内容的漏洞时的控制台错误消息日志。
启用了 Windows ARM64 Player 编译。有关更多信息,请访问系统要求页面。
ArticulationBody.jointPosition 指针线,以便在场景视图中显示关节的确切位置。
发布了 Memory 性能分析器 1.1.0 版。有关详细信息,请参阅 Memory 性能分析器包文档。
新增了控制玩家连接监听端口的功能。
在播放器构建中的调用栈中新增了显示 C# 源代码行号的选项。
在 Unity 2023.1 中,光线追踪 API 正式脱离实验阶段。光线追踪 API 包括稳定性和性能改进,以进一步与引擎的现有功能集兼容。
使用 Sentis 可直接在 Unity 应用程序中运行机器学习模型,并利用实时 AI 驱动功能优化性能。要了解更多信息,请参阅 Sentis 文档。
向 Shader Graph 包新增了一组生产就绪的示例内容着色器。
Variant Keyword Prefiltering 根据渲染管线 (Render Pipeline) 设置驱动的预过滤属性 (Prefiltering Attributes),引入了提前排除“multi_compile”关键字。这大大减少了为潜在剥离和编译而枚举的变体数量。结果显著缩短了着色器处理时间。
新增了 SpeedTree9Importer,支持 SpeedTree Modeler 9 导出的 .st9 文件,并包含以下内容:
.cg)、URP 和 HDRP 渲染器 (.shadergraph) 的新 SpeedTree9 着色器。改进了 HDRP 中的 SpeedTree 视觉质量,使用透射遮罩仅在树叶上应用次表面散射。HDRP/Nature/SpeedTree8.shadergraph 将其 Subsurface Map 用于 Transmission Mask 节点,以消除树皮和树枝上不想要的光透射效果。这也修复了公告牌光照过亮与 3D 几何体光照不匹配的问题。
现在,HDRP/Nature/SpeedTree8.shadergraph 将其 Subsurface Map 用于 Transmission Mask 节点,以消除树皮和树枝上不想要的光透射效果。这也修复了公告牌光照过亮与 3D 几何体光照不完全匹配的问题。
现在,可以将个性化数据存储在样条对象上。此外,还改进了检视视图中编辑点的界面,并向公众提供了某些 API。现在,处理样条时,可以使用新的场景视图上下文菜单。
-randomOrderSeed x 以随机顺序运行测试,其中 x 是一个不为 0 的整数。如果向项目新增了测试,测试框架会在传入相同种子的情况下保持随机顺序,并相应地将新增测试放置在随机列表中。TestFileReferences.json 生成,以便测试运行程序可以将使用它来丰富运行步骤的数据。
在 Unity 的版本控制功能中新增了一个选项卡视图,用于列出并管理锁定。
新增了一个项目选项,以支持追踪存在于磁盘上项目根文件夹之外的包。
ShaderKeyword。
在 Vision Pro 上新增了对 Foveated Rendering 的支持。