Unity 6 中的新增功能
Unity 6 是 Unity 的最新版本。
一、编辑器和工作流程
Unity 6 中引入的更改
- 在 Linux 上实现了将文件和资源从 Unity 拖放到外部应用程序的功能。
- 将 Asset Manager for Unity 包添加到 Package Manager > Services > Content Management 部分中。此包允许用户轻松浏览、上传和导入 Unity 项目中的资源。
- 添加了一个新的 Editor 命令行参数,用于指定 UPM 日志输出的自定义文件路径。有关更多信息,请参阅 Unity Editor 命令行参数。
Unity 6 预览版中引入的更改
- 添加了可用于选择的穿孔菜单游戏对象
与其他游戏对象重叠。要打开穿孔菜单,请在 Scene 视图中按住 Ctrl + 右键单击。穿透菜单在光标下显示所有可选游戏对象的列表。 - 已添加到 Steam ID 提供商编辑器设置中,以支持多个应用 ID。
Additional App IDs
- 介绍构建配置文件
为每个目标平台创建多个自定义构建配置。 - “Build Profile Diagio”复选框不再可用,因为 Build Settings 窗口已替换为 Build Profile 窗口。
- 集成了新的构建配置文件图标。
- 修改了 Create 菜单,将 C# Script 菜单项替换为三个单独的选项:
- MonoBehaviour 脚本
- ScriptableObject 脚本
- 空白脚本
- 改进了 Create 菜单以减少菜单根目录的项目数量。菜单现在按字母顺序排序,几乎所有项目现在都位于一个类别中。
二、UI 工具包
Unity 6 中引入的更改
添加了一个选项,用于在线性色彩空间项目中强制 UI Toolkit 进行 Gamma 渲染。
Unity 6 预览版中引入的更改
- 添加了缺少的 UxmlAttribute 转换器以支持 UXML 创作:、、、Unsigned Int 和 Unsigned Long。
Gradient
AnimationCurve
ToggleButtonGroupState
- 添加了对序列化属性的支持。
PropertyField
ToggleButtonGroupState
- 本机文本生成器重写。使用文本生成器,您可以使用多种语言和脚本
,例如阿拉伯语和希伯来语等从右到左 (RTL) 语言。 - 添加了 UI Toolkit 动态图集的调试器。
- 在 UXML 和 UI Builder 中添加了对深度嵌套属性覆盖的支持。
- 添加了使用 Search 的类型选择器。
- 在 UI Builder 库中添加了搜索字段。
三、实体
Unity 6 预览版中引入的更改
- 添加了对启用对 Unity 资产的非托管引用的序列化支持。例如,您可以在非托管 IComponentData 上使用 Texture,而不是在托管 IComponentData 上使用 .
UnityObjectRef<>
UnityObjectRef<Texture>
IComponentData
- Create (创建) 菜单添加以下 Type 模板:
IComponentData
ISystem
IJobEntity
- 面包师傅
- 更改了实体的存储方式,以便为实体和游戏对象工作流的整合做准备。实体 ID 现在是全局唯一的,您现在可以有效地将它们从一个实体世界移动到另一个实体世界。这不会影响 Unity 6 中的 ECS 工作流,但它确实通过始终显示确切的实体来消除调试的歧义。
- 对实体 Hierarchy 窗口应用了以下修复:
- 您可以在层次结构中选择实体和系统。
- 修复了在有效用例中从层次结构视图中删除实体后失败的无效范围检查。
- 阻止实体层次结构在销毁实体时引发异常。
- 现在,实体层次结构会在卸载场景时删除场景和子场景的所有节点。
- 当您输入预 置
从 Entities 层次结构。
- 改进了在具有大量现有类型的世界中烘焙以及创建原型和实体查询的性能。
- 改进了 LocalToWorld 系统和非脏层次结构的性能。
- 修复了 using on an enable 组件未插入必要的作业依赖项的问题。
EntityQuery
WithNone<T>
EntityQuery
Singleton 方法现在可以正确处理查询包含可启用组件的情况。- 修复了内存泄漏问题,例如影响世界反序列化和内容交付的问题。
- 修复了在系统中定义的作业中的断点。
四、图形
Unity 6 中引入的更改
移动了通用的 Unity 6 文档渲染管线
(URP) 添加到 Unity 引擎手册中。例如,有关 URP 中光照的文档现在位于手册的 Lighting 部分。
Unity 6 预览版中引入的更改
- 添加了对间接 Dispatch Rays(DXR 1.1 的一部分)的支持。该方法类似于 ,但三个调度维度是从 GraphicsBuffer 中检索的。已添加和新签名。添加了功能状态。
RayTracingShader.Dispatch
RayTracingShader.DispatchIndirect
CommandBuffer.DispatchRays
SystemInfo.supportsIndirectDispatchRays
- 添加了 GPU 驻留抽屉,它会自动使用 API 通过 GPU 实例化绘制游戏对象。这减少了绘制调用的数量并释放了 CPU 处理时间。
BatchRendererGroup
- 向 GPU 驻留抽屉式导航栏添加了对 SpeedTree GameObjects 的支持。
- 添加了对实例的 GPU 遮挡剔除(如果实例与 GPU 常驻抽屉)兼容的支持,包括小网格的剔除。
- 为 API 添加新的每批次层筛选设置。您可以使用此设置剔除特定批次。
BatchRendererGroup
- 优化了 URP 和 HDRP 中体积框架的 CPU 性能,以提高低端硬件的效率,并允许更精确地控制质量设置。
- 在 Build Profiles > Asset Import Overrides 中添加了 Force No Crunch 纹理压缩设置,该设置强制所有纹理禁用 Crunch 压缩并重新导入。
- 添加了一个界面,允许您在 Graphics Settings 窗口中添加新的设置组。更新了默认检查器,以便在修改“图形设置”中的值时触发通知,并在 中添加了自定义菜单。
IRenderPipelineResources
IRenderPipelineGraphicsSettings
IRenderPipelineGraphicsSettings
- 添加了对 的 UI Toolkit 支持。
CustomPostProcessOrder
- 添加了缓存 URP 和 HDRP 的渲染图系统编译的选项。
五、URP
有关 URP 新增功能和改进的完整说明,请参阅 URP 中的新增功能。
Unity 6 预览版中引入的更改
-
为 Main Light 和 Additional Lights 的 Shadow 纹理分辨率添加了 8192x8192 选项。
-
添加了摄像机历史 API,该 API 允许您访问每个摄像机的历史纹理并在自定义渲染通道中使用它们。History 纹理是 Unity 在前一帧中为每个摄像机渲染的颜色和深度纹理。
-
向 URP 添加了 Adaptive Probe Volumes (APV) 照明场景混合。
-
添加了一个新的配置包,允许您覆盖可见光的最大数量。
-
添加了 Render Graph Viewer 窗口。此工具允许您可视化渲染通道如何使用帧资源,并调试渲染过程。
-
Rendering Debugger 现在包含一个 Mipmap Streaming 部分。此部分允许您检查纹理流活动。
-
添加了 C# 脚本模板,用于创建使用体积组件的自定义后处理效果。
-
添加了对 URP 的 APV 天空遮挡支持。
-
添加了对空间时间后处理 (STP) 放大的支持。
-
新的渲染图系统改进了自定义和维护渲染管道的方式。该系统减少了 URP 使用的内存量,并使内存管理更加高效。
-
此 URP 版本实现了 Alpha Processing 设置。如果启用此设置,URP 会将后处理输出渲染为render texture (渲染纹理)
具有 Alpha 通道。在以前的版本中,URP 通过将 Alpha 值替换为 1 来丢弃 Alpha 通道。
六、HDRP (HDRP)
有关 URP 新增功能和改进的完整说明,请参阅 HDRP 中的新增功能。
Unity 6 预览版中引入的更改
- 添加了对覆盖材质属性(如平滑度、反照率和法线贴图
在所有材质上,以方便材质和光照调试。通过路径追踪器管道进行渲染时,可以通过渲染调试器的 Lighting 面板使用 HDRP 中的材质覆盖功能。 - 在 Adaptive Probe Volumes (APV) 中添加了 Sky Occlusion 功能,以允许使用静态探针卷。
- 禁用了将烘焙数据存储为 Adaptive Probe Volumes (APV) 中的流式资源,以使其与 Asset Bundle 和 Addressables 兼容。
- 添加了 AMD FidelityFX Super Resolution 2 (FSR2) Unity 脚本绑定和 HDRP 集成。
- 改进了现有的 Mipmap Streaming 调试视图并添加了更多视图。HDRP 中的当前产品与 URP 提供的功能一致。
- 添加了对空间时间后处理 (STP) 放大解决方案的支持。
七、多人游戏工具
Unity 6 中引入的更改
多人游戏工具包版本 2.2.1 改进了 Unity 中多人游戏开发的工作流程、Netcode for GameObjects 2.0 的性能,并增加了对分布式授权的支持。
Unity 6 预览版中引入的更改
将多人游戏工具包更新到版本 2.1.0,添加了 Network Scene Visualization 作为新的可视化调试工具。有关更多信息,请参阅 多人游戏工具 文档。
多人游戏模式
多人游戏模式包旨在缩短迭代周期,更轻松地验证实现选择,并在运行时流程的早期提高游戏质量。
Unity 6 中引入的更改
Unity 6 中新增的 Play Mode Scenarios 将测试周期集成到生产环境中,帮助您更早地为真实玩家提供首次可玩的体验。
Unity 6 预览版中引入的更改
将多人游戏模式更新到 1.0 版本。使用它来测试多人游戏功能,而无需离开 Unity 编辑器。有关更多信息,请参阅 Multiplayer Play Mode 文档。
八、专用服务器套餐
专用服务器包整合了 Editor 中的专用游戏服务器工作流程,以便更轻松地在本地部署专用服务器和 Multiplay 托管。
Unity 6 中引入的更改
新的 Multiplayer 角色允许您控制在每个构建目标中使用的多人游戏角色(Client、Server):
- Content Selection:提供 UI 和 API,用于选择在不同多人游戏角色中应存在/删除哪些内容(游戏对象、组件)。
- Automatic Selection:提供 UI 和 API,用于选择应在不同的多人游戏角色中自动删除哪些组件类型。
- 安全检查:激活警告,以帮助检测因剥离多人游戏角色的对象而导致的潜在 null 引用异常。
Unity 6 预览版中引入的更改
发布了 Dedicated Server 软件包,您可以使用该软件包在服务器和客户端角色之间切换项目,而无需创建其他项目。有关更多信息,请参阅 专用服务器软件包文档。
九、游戏对象的 Netcode
游戏对象的 Netcode 是一个高级联网
为 Unity 构建的库,用于抽象网络逻辑。
Unity 6 中引入的更改
Netcode for GameObjects 版本 2.0 现在支持 Distributed Authority (Beta),并包含一些改进,以促进多人游戏开发中的最佳实践。有关游戏对象的基本 Netcode 功能以及各个 API 和系统的实际示例的信息,请参阅多人游戏用例 Bitesize 示例。
Unity 6 预览版中引入的更改
- 在 Netcode for GameObjects 中添加了 Distributed Authority 模式,在游戏会话期间,客户端对生成的 Netcode 对象具有分布式所有权或权限。使用 Distributed Authority,客户端拥有生成网络对象的受管权限,该权限将向云状态服务宣布,并将状态更新传达给所有连接的客户端。高度优化的云状态服务可维护客户端之间网络会话的整体状态。
- 添加了一个新的 RPC 属性,该属性可以执行服务器和客户端 RPC 的功能,以及启用客户端到客户端 RPC。
- 添加了许多实用程序方法,包括 、 、 等。
十、实体的 Netcode
Netcode for Entities 是 Unity 面向数据的技术堆栈 (DOTS) 的一部分,它提供了一个具有客户端预测框架的权威服务器,可用于创建多人游戏。
Unity 6 中引入的更改
Netcode for Entities 版本 1.3 包括多项可用性改进和新的 Megacity Metro 演示游戏,该游戏展示了 Unity 6 如何更快、更轻松地设置多人游戏服务、联网车辆实施、可配置的基于规则的比赛和沉浸式玩家通信。
Unity 6 预览版中引入的更改
- 添加了对游戏对象的支持,以渲染调试边界框。
- 添加了 NetCodeConfig ScriptableObject,其中包含大多数 NetCode 配置变量,您无需修改代码即可自定义这些变量。
- 现在,您可以通过以下方式禁用自动引导:
- 在 ProjectSettings 中禁用自动引导。
- 将新的 MonoBehaviour 添加到你的第一个构建场景中。
OverrideAutomaticNetcodeBootstrap
- 添加了可用于指定相关性的一般规则,而无需逐个指定 ghost 。
AlwaysRelevantQuery
Added BatchScaleImportanceDelegate
,这是批量工作的重要性扩展函数的新版本。不需要同时设置 ScaleImportance 和 BatchScaleImportance 函数指针。如果设置了 BatchScaleImportance,则它是首选的。
十一、包管理器
Unity 6 预览版中引入的更改
改进了项目清单
文件,如果文件为空或充满空格,则使用默认依赖项重新填充它们。
十二、平台
Unity 6 预览版中引入的更改
- 添加了新的 Build 设置,以便在将文件上传到 Google Play 商店时将调试符号嵌入到 app bundle 中。您可以选择将符号包作为 zip 文件与 or 文件单独上传。您可以创建具有 or 和旧版扩展名的元件文件。
- 添加了新的 Player 设置,以便在元件的包大小超过指定阈值时显示警告。
- 在 中添加了一个新属性
.androidlib
插件
Inspector 指定 的依赖关系。现在,您可以配置为 依赖 ,从而通过覆盖 来扩展活动。 - 添加了新的播放器设置,以允许或拒绝 Android 设备使用 Vulkan 图形 API。借助 Android Vulkan 允许过滤器列表,您可以允许某些设备使用 Vulkan 作为默认图形 API。或者,使用 Android Vulkan 拒绝过滤器列表,您可以限制某些设备使用 Vulkan API。
iOS 设备
Unity 6 预览版中引入的更改
- 添加了插件支持。
.xcframework
- 从 中删除了自定义 XIB 启动屏幕类型播放器设置
. - 添加了新的播放器设置以支持 64 位 ARM 和 64 位 Intel/AMD 模拟器体系结构。ARM 64 和 x86_64 支持也已添加到 Plugin Importer 中。
visionOS 操作系统
Unity 6 预览版中引入的更改
添加了对 Apple 的 visionOS 平台的支持。
Web 平台(以前称为 WebGL)
Unity 6 预览版中引入的更改
- 在 Web 平台中实现了以下方法和属性:
LocationService
Start()
Stop()
isEnabledByUser
lastData
status
-
添加了在 Unity 播放器中复制和粘贴的功能。
- 添加了对 WebAssembly 2023 的支持。有关更多信息,请参阅 WebAssembly 2023。WebAssembly 2023 包括对高达 4GB 堆内存的支持,并且是以下 WebAssembly 语言功能的集合:
- WebAssembly 原生异常
- WebAssembly 单指令多数据 (SIMD)
- 优化的数据操作
- BigInt 的
- WebAssembly.Table 表格
- 非捕获 float 到 int 的转换
- 标志扩展
- 实现了以下 LocationService 方法和属性:
GetLastHeading()
SetHeadingUpdatesEnabled()
IsHeadingUpdatesEnabled()
GetHeadingStatus()
IsHeadingAvailable()
-
添加了对 Compass API 的支持。
-
添加了对移动浏览器的支持。
-
实施了 Emscripten 3.1.38 工具链。
十三、生产力工具
Unity 6 预览版中引入的更改
- 创建了 ProBuilder 工具上下文,您可以在 Scene 视图的 Tools 叠加中激活该上下文。ProBuilder 工具上下文在 Scene 视图中启用 ProBuilder 特定的操作。
- 删除了 ProBuilder 窗口。ProBuilder 工具上下文与 Scene 视图上下文菜单结合使用,为 ProBuilder 操作提供了更简化的工作流程。
- 将 Vertex(顶点)、Edge(边)和 Face(面)编辑模式移动到 Scene 视图中的 Tool Settings(工具设置)叠加层。要在“工具设置”叠加层中显示 ProBuilder 编辑模式,请在“工具”叠加层中启用 ProBuilder 工具上下文。
- 当 ProBuilder 工具上下文在 Tools 叠加中处于活动状态时,将依赖于元素选择的 ProBuilder 操作(如 Bridge、Weld Vertices 和 Grow Selection)移动到 Scene 视图上下文菜单。
- 将应用于整个 ProBuilder 网格组件的 ProBuilder 操作(如 Export、Subdivide 和 Center Pivot)移动到 Scene 视图上下文菜单。
- 将创建和编辑工具移动到 Tools 叠加层。
- 为大多数 ProBuilder 操作添加了预览选项。
- 从 ProBuilder 中移动了这些工具选项工具栏
到 Tool Settings 叠加层中:- 选择 Hidden
- 方向:正常
- 矩形:相交
- 改进的创建工具:
- 使用创建形状工具后按住 Shift 键,以创建您刚刚创建的形状的副本。
- 使用 Create PolyShape 后,您现在可以在不离开该工具的情况下绘制多个形状。
分析器
Unity 6 预览版中引入的更改
已发布 1.1.0 版 Memory分析器
.有关详细信息,请参阅 Memory Profiler 软件包文档。
十四、Shader Graph
Unity 6 中引入的更改
向 Shader Graph 包添加了一组新的 Production Ready 示例内容着色器。
Unity 6 预览版中引入的更改
- 添加了一个可与 Package Manager 一起安装的新示例内容包。这些示例包含 Shader Graph 中大多数节点的描述、示例和细分。这些示例可帮助您了解节点的内部工作原理,并查看它们如何工作以及如何使用它们的示例。
- 添加了用于添加新节点和切换子窗口可见性的新快捷方式,并将多个现有快捷方式移动到 Shortcut Manager (快捷方式管理器)。
- 在用户首选项中添加了缩放步长选项。
- 添加了可自定义的 Heatmap 颜色模式,默认情况下,该模式显示 Shader Graph 中每个节点的估计性能影响。
- 向 Shader Graph 添加了功能示例示例,以向用户展示如何在 Shader Graph 中实现特定效果。
十五、SpeedTree
Unity 6 预览版中引入的更改
添加了 SpeedTree9Importer,它支持 SpeedTree Modeler 9 导出的 .st9 文件,包括以下内容:
- 支持 SpeedTree Games Wind 和 SpeedTree Legacy Wind 效果。
- 能够通过 Importer Settings 配置风力强度和风向响应能力。
- 用于内置 ()、URP 和 HDRP 渲染器 () 的新 SpeedTree9 着色器。
.cg
.shadergraph
- 新风效果的新着色器,但对照明没有重大更改。
十六、版本控制
Unity 6 中引入的更改
- 添加了一个选项,用于删除尚未合并到任何位置的非空分支。
- 添加了一个设置,用于自动将任何新文件添加到源代码管理中。
Unity 6 预览版中引入的更改
添加了一个新的选项卡视图,用于列出和管理 Unity 的 Version Control 功能中的锁。
十七、VFX 图形
Unity 6 预览版中引入的更改
- 改进了 Shader Graph Cross Pipeline 工作流程。
- 现在,您可以从 Blackboard 面板处理内置属性和自定义属性。
- 允许对具有公开纹理或图形缓冲区的 VFX 进行实例化渲染。
- 条带现在支持 “Indirect draw” 选项。“间接绘制”仅渲染处于活动状态的粒子,而不是全容量。
- 添加了对条带中每个粒子排序的支持。
- 在 VFX 窗口中添加了新的性能分析/调试面板。
- 在使用 URP 的 VFX 中添加了 Camera Buffer Access 支持。
- 支持在 Shader Graph 中声明。
ShaderKeyword
- 重新设计了 Flipbook 播放器块。
- 添加碰撞
允许在接触时进行特定进程的事件。 - 对 VFX Graph 中的快捷方式进行了以下改进:
- 在全局 Unity Shortcut 窗口中注册了快捷方式。
- 尽可能与 ShaderGraph 同步快捷方式。
- 添加了新的快捷方式。
- 添加了条带的粒子计数回读,这也允许条带进入休眠状态。
- 为条带启用了 Frustum Culling。
十八、XR 系列
Unity 6 预览版中引入的更改
添加了对 Vision Pro 上的注视点渲染的支持。
-
Unity 6 中引入的更改
- 为 RenderGraph 启用了 Optimized Buffer Disdiscard 设置。
- 添加了对 Apple visionOS 2.0 的支持。
- 在 visionOS 模拟器中运行时支持 Burst。注意:此功能需要 Burst 1.8.13+。
- 为 Windows 和 Linux 编辑器添加了 visionOS 平台。注意:App 构建版本仍需要在 Mac Silicon 计算机上运行 Xcode。
- 添加了对 visionOS 的单通道着色器支持。
- 在 visionOS 上的 XR 应用程序中添加了对键盘输入的支持。
- XR 包版本更新
- com.unity.xr.arcore:5.1.0-pre.8 到 6.0.3
- com.unity.xr.arfoundation:5.1.0-pre.8 到 6.0.3
- com.unity.xr.arkit:5.1.0-pre.8 到 6.0.3
- com.unity.xr.core-utils:2.2.1 到 2.3.0
- com.unity.xr.hands:1.2.1 到 1.4.1
- com.unity.xr.interaction.toolkit:2.4.0 到 3.0.5
- com.unity.xr.legacyinputHelpers:2.1.10 到 2.1.11
- com.unity.xr.management:4.3.3 到 4.5.0
- com.unity.xr.meta-openxr:1.0.1 到 2.0.1
- com.unity.xr.oculus:4.0.0 到 4.3.0
- com.unity.xr.openxr:1.8.1 到 1.12.1