陈巧倩

Unity中文版-Unity2023.2更新日志(自翻译)

· 390 words · 2 minutes to read
Categories: Unity
Tags: Document

翻译Unity中文版的初衷是因为官方提供的中文版存在缺陷,而且翻译的不全。现在基于Unity2023.2版本对官方文档进行翻译。

New in Unity 2023.2 🔗

Release Notes 🔗

要了解更多关于这个Unity版本的新功能、变更和改进,可以参考2023.2版本的发布说明。

Upgrade Guide 🔗

如果你正在将现有的项目从2023.1版本升级,可以阅读升级到2023.2的指南,了解你的项目可能会受到哪些影响。

What’s new 🔗

了解自2023.1以来在Unity 2023.2中有哪些变化,并查阅受影响区域的文档。

Accessibility 🔗

我们新增了一个编辑器窗口,即Accessibility Hierarchy Viewer,它可以展示当前活跃的可访问性结构及其节点。如需访问Accessibility Hierarchy Viewer,你可以去主菜单的 Window > Accessibility > Accessibility Hierarchy viewer

Audio 🔗

  • 我们新增了Audio Random Container,可以随机化音频并确保音量、音调、时间和触发器可以设置为非重复间隔,以确保你的游戏永远不会有两次相同的声音。
  • 在Audio Random Container中我们加入了一个VU表。

Authoring Tools 🔗

2D 🔗

我们在Tile Palette编辑器窗口中增加了覆盖层支持。

2D Physics 🔗

我们在 Joint Angular Limits gizmo中增加了ArticulationBody.jointPosition指针线,以便在Scene视图中显示关节的准确位置。

Editor and Workflow 🔗

  • 新增了Scene视图的上下文菜单。您现在可以通过右键点击或使用自定义的键盘快捷方式在Scene视图中访问新的上下文菜单。这些菜单由UI Toolkit创建并可以在C#中扩展,提供了轻松访问常用命令的方式。
  • 在Scene视图的偏好设置中添加了仅在编辑器处于焦点状态时刷新Scene视图的选项。启用此选项可使Scene视图仅在编辑器处于焦点状态时刷新。
  • 新增了可以用键盘快捷方式进行Animator状态之间切换的功能。
  • 增加了基本OpenType字体功能的支持。目前,只有字距调整功能是启用的。
  • 增加了一个新的Cameras覆盖层来替换Camera预览。您可以使用Cameras覆盖层进行相机的第一人称控制,并在Scene视图中管理相机。
  • 用UI Toolkit版本替换了大部分OS上下文菜单。
  • 增加了颜色检查器,这是一个用于校准光照和后处理的工具。用户可以通过GameObject > Rendering > Color Checker Tool添加颜色检查器。该工具仅作为光照艺术家的生产工具,并不会在构建中保存。
  • 启用了编辑器显示不同许可证通知模态框的功能。
  • 增加了一个PropertyCollectionAttribute,可以用来实现自定义抽屉的集合。
  • 使用Camera的平移、缩放和轨迹控制,添加了一个新的灯光放置工具。获取更多信息,请参阅从它的视角查看和控制灯光。

UI Toolkit 🔗

  • 现在你可以用一个新的,灵活的运行时绑定系统在创建编辑器或运行时UI时轻松地将数据值连接到UI元素属性。您可以在UI Builder或C#代码中配置数据绑定。
  • 增加了新的控制元素,例如ToggleButtonGroup、Tab和TabViews,同时对现有的控制元素做出了改进。
  • 对Button、ListView和TreeView控件增加了图标支持。
  • 增加了新的UxmlElement和UxmlAttribute属性。在创建自定义控件时,这些属性替换了原有的UxmlFactory和UxmlTraits。这简化了自定义控件的创建,提供了通过C#属性的高效替代方案,无需编写大量的代码。此外,您现在可以像在Inspector中那样为字段创建自定义属性抽屉。
  • 对UI Builder进行了改进,改进了显示样式属性的驱动情况,优化了画布操作,并进行了其他的增强。更新的UI Builder现在也支持UXML Objects的编写,使其能够编辑MultiColumnTreeView和MultiColumnListView。
  • 在TextElement和TextField中,增加了Emojis Fallback Support字段,以控制在emoji范围内搜索字符的顺序(主字体vs全局回退)。另外,增加了对OpenType字体功能的基本支持,目前的焦点是启用字距调整功能。
  • 在UI Builder的Inspector中,为盒模型小部件增加了一个新的Spacing字段。

TextMeshPro 🔗

  • 增加了基本的Emoji支持。
  • 添加了基本的OpenType字体功能支持,目前只启用了字距调整功能。

Graphics 🔗

  • 批处理计算Skinning:Unity的Skinned Mesh Renderer组件使用计算调度在GPU上并行化顶点变换。Unity 2023.2在所有支持的平台上引入了对Skinned Mesh Renderers的优化。这些优化旨在批处理计算skin和blendshape调度。这可以增加并行变形的顶点数量,并提高角色和 skinned mesh 渲染的GPU性能。
  • Progressive GPU Lightmapper现已退出预览,完全得到支持。
  • 添加了在运行时移动Light Probe位置的API。
  • 移除了Lighting窗口中的Auto Generate设置。相关API现已废弃。为了在编辑时检查光照贴图,你现在可以选择Scene View Draw Mode,并将Lighting Data设置为Preview。这将展示一个烘焙光照的预览。预览光照贴图是非破坏性的,你可以在烘焙场景之后使用它们。
  • 添加了BatchCullingContext.cullingFlags,用于指定是否应裁剪 lightmapped shadow casters。
  • BatchRendererGroup添加了rendererPriority支持。
  • 对构建计算队列上的异步光线追踪加速结构提供了支持。AsyncCompute CommandBuffers现在可以运行CommandBuffer.BuildRayTracingAccelerationStructure命令。为RenderGraph和Render Graph Viewer添加了RayTracingAccelerationStructure的支持。
  • 为Texture2DArrays添加了mipmap限制支持。
  • 为Texture2DArrays添加了mipmap剥离支持。
  • 为LoadImage添加了提供tiled EXR图像的支持。
  • 允许暴露光线追踪加速结构的构建标志,以平衡构建时间与GPU上的光线追踪速度和内存消耗。在创建和构建RayTracingAccelerationStructure以及在Renderer设置的UI中,都可以从C#中自定义标志。
  • 为DX12添加了Native Render Pass支持。
  • 为D3D12(Windows和XBox平台)添加了批处理GPU skinning的支持。
  • 为粒子尾迹添加了Custom Vertex Streams功能。
  • 添加了BakeTextureBakeTrailsTexture脚本方法。

Universal Render Pipeline (URP) 🔗

要获得URP新功能和改进的完整描述,请参考URP的新功能。

  • 添加了跨平台HDR显示支持。HDR显示器能够在更高的亮度差异范围内复制图像,接近自然光照条件。在这些设备上显示的HDR输出可以保留线性光照渲染和HDR图像的对比度和质量。编辑器和Standalone Players现在在所有的渲染管线和能力平台上,包括移动和XR,提供全面的HDR色调映射和显示支持。
  • 为Probe Volumes的间接照明添加了每个顶点质量级别,使得URP更高效地呈现照明环境。你可能需要在移动设备上进行进一步的优化,因为URP不支持Reflection Probes的Lighting Scenario混合或Lighting Normalization。
  • 在Motion Blur容量组件中添加了一个名为Camera And Objects的新选项,该选项使用运动向量来模糊比摄像机的曝光时间移动更快的物体。
  • 添加了对额外定向光源cookies的支持。
  • 在URP Global Settings中添加了Default Volume Profile字段。
  • 在Universal Render Pipeline Asset中添加了Volume Profile字段。
  • 为URP材质添加了Alembic速度运动向量支持。
  • 为基于只有Time节点的顶点动画的ShaderGraphs添加了自动TimeBased运动向量生成。影响位置的所有其他数据在帧之间必须是常数。
  • 为使用正交投影的XR渲染和相机添加了对Forward+渲染路径的支持。
  • 在Forward+渲染路径中添加了对集中渲染的支持。

High Definition Render Pipeline (HDRP) 🔗

要获得HDRP新功能和改进的完整描述,请参考HDRP的新功能。

  • 为Decals投影器添加了HDRP路径跟踪器支持。路径跟踪器不支持来自decals的发光。
  • 增加了在运行时从磁盘流式加载Probe Volume数据的功能。你可以为不同的质量级别启用或禁用磁盘流式加载。
  • 使HDRP Shader Graph decals兼容透明对象。这意味着你可以使用Shader Graph创建的decals影响透明对象,以构建像雨滴、涟漪、自定义雕刻、玻璃上的污垢效果等程序效果。
  • 在HDRP物理天空中添加了一个带有星星和天体的夜空。
  • 为基于物理的天空添加了Shader Graph输出,并添加了控件来创建月亮。
  • 在Render Graph Viewer中添加了对异步计算pass和同步点的可视化。
  • 为体积云添加了beer阴影图。
  • 在HD Render Pipeline Asset中添加了Volume Profile字段。
  • 为带有彩色透射的薄对象添加了材料类型。
  • 为Lit ShaderGraphs的材料添加了禁用清漆的选项。
  • 添加了Global Pass API,你可以使用它在没有任何游戏对象的场景中向渲染管线注入自定义pass。
  • 为Arbitrary Output Variables (AOV)添加了体积雾全屏调试模式输出。
  • 添加了Adaptive Probe Volumes (APV)直接从磁盘流式加载数据的能力。这个功能只在具有计算阴影兼容性的设备上可用。
  • 添加了使用烘焙API独立于光照贴图或反射探针来烘焙Adaptive Probe Volumes (APV)的能力。

Multiplayer 🔗

Netcode for GameObjects 🔗

  • 在网络对象组件的上下文菜单中添加了刷新场景中的预设实例选项。使用此属性更新场景中存在的预设实例的GlobalObjectIdHash值,这些预设实例在具有NetworkObject组件之前就已存在。这个属性影响包含在构建列表中的所有场景。
  • 添加了NetworkManagerSetPeerMTUGetPeerMTU方法,以全面控制最大传输单元(MTU)大小。使用它为游戏对象的Netcode中的自定义协议。
  • 改进了网络预设标识生成(例如,GlobalObjectIdHash)以修复Unity分配无效值的问题。
  • 以下方式改进了序列化API和codegen管道:
    • 添加了GenerateSerializationForTypeAttribute方法,你可以将此应用到任何类或方法,以确保特定类型包含在codegen序列化过程中。
    • 添加了GenerateSerializationForGenericParameterAttribute方法,你可以使用它来将被NetworkVariable类型包装的泛型类型包含在codegen过程中。
    • 暴露了额外的NetworkVariableSerialization方法,以改进自定义NetworkVariable的创建,没有任何装箱成本。你可以使用NetworkVariableBase.MarkNetworkBehaviourDirty方法来将NetworkVariables标记为脏。
  • 泛型NetworkBehaviour类型中的RPC现在可以序列化类的泛型类型的参数。
  • 改进了Netcode对32位ARMv7的支持。
  • 添加了额外的NetworkManager事件OnServerStartedOnServerStoppedOnClientStartedOnClientStopped,以更好地通知NetworkManager初始化过程。

Dedicated server platform 🔗

  • 在玩家设置中添加了专用服务器优化选项,启用后,会从服务器构建中剥离所有着色器。启用此选项可以大大减少构建时间。

Unity Transport 🔗

  • Unity传输2.X现在是Unity传输的默认和推荐版本。
  • 现在可以通过在NetworkSettings.WithNetworkConfigParameters中新的maxMessageSize参数配置传输将发送的最大消息大小。这在网络设备处理较大数据包时出错的环境中非常有用(比如某些移动网络或VPN)。该值不包括IP和UDP头,但包括传输本身添加的头(例如,可靠性头)。默认值是1400。注意,建议客户端和服务器配置使用相同的值。

Package Manager 🔗

Changes to package cache management 🔗

  • 更改了全局缓存的默认位置和结构。
  • 注册数据缓存现在默认最大限制为10GB。你可以通过自定义全局缓存来覆盖默认值。

Changes to the Package Manager window 🔗

  • 添加了一个导航面板:

    • 添加了一个面板,以改进在包子集视图之间的导航。在早期版本中,这些上下文存储在Packages下拉菜单中。
    • 在包管理器导航面板中添加了Services作为专用条目。
    • 在导航面板中的In Project下添加了Updates作为嵌套条目。此嵌套视图列出了项目中所有有更新的包。
    • 在导航面板的My Registries下添加了单独的定位注册表作为嵌套条目。
  • 对列表面板的增强:

    • In Project上下文的列表面板中添加了一个Packages - Asset Store扩展器,以便你可以在In Project视图中查看和管理Asset Store的包。
    • 搜索框的位置进行了重新调整,改变了其行为,以便在每个上下文基础上回撷你的搜索词。
  • 对详情面板的增强:

    • 改进了在My Assets上下文中管理包的流程,通过优化详情面板中的操作按钮。最常见的操作作为菜单按钮中的默认操作,其他操作列在菜单中。还添加了In Project标签,明确表示Asset Store包已经导入到你的项目并且是最新的。
    • 更新了查看Asset Store包时Import按钮的标签。下载更新的Asset Store包后,主操作按钮的标签是Import update #.# to project,所以你需要明确需要将更新导入到你的项目。
    • 更新了从注册表中安装的包的文档链接的行为。你现在可以右击链接并选择Open in browserOpen locally
    • 当你登出并试图查看Asset Store包的详细信息时,添加了一个用你的Unity ID登录的按钮。
  • 其他增强:

    • 在查看My Assets上下文时更新了Filters菜单中的值。
    • 更新了Filters控制的标签,以便显示选定的值而不是上一级别的类别。

Android 🔗

  • 添加了针对Android的Addressables包(com.unity.addressables.android),为Addressables提供Play Asset Delivery支持。
  • 通过针对Android的Addressables包添加了纹理压缩格式定向支持,以将多种纹理压缩格式打包到Android资产包中。在安装时,只根据设备的移动GPU构建APK,使得加载和渲染纹理更快,且内存占用更少。
  • 添加了ApplicationExitInfo API,提供关于应用程序崩溃和应用程序无响应(ANR)错误的信息。
  • 进行了以下改进:
    • 设置GameActivity为默认应用程序入口点,以提供对Android和你的应用程序之间交互的更多控制。
    • 将最低支持的Android版本提高到6.0(API级别23)。

Profiler 🔗

  • 在Memory Profiler中添加了对AudioClip和Shader的元数据支持。
  • 在Profiler窗口中添加了一个Highlights模块。
  • 为CPU Profiler添加了一个新的Inverted Hierarchy视图。

Raytracing API 🔗

  • 射线追踪加速结构构建标志:新的射线追踪加速结构构建标志被引入到Unity的渲染器和RTAS API中。这些标志让你可以控制射线追踪内存使用、RTAS构建时间和射线追踪性能之间的权衡。开发者和艺术家可以使用新的标志来优化他们的场景和渲染器中的射线追踪性能。
  • Shader中的内联射线追踪:现在可以在光栅化和计算着色器中使用内联射线追踪,只要是面向具有DXR1.1能力的Windows平台、Xbox Series X/S和Playstation 5。开发者可以从着色器内部发送射线查询,遍历束定的射线追踪加速结构并进行交叉测试。这使他们可以实现各种硬件加速的射线追踪效果和模拟。

Shader Graph 🔗

  • 添加了UGUI对Shader Graph的支持。Shader Graph现在在URP和HDRP中都为Canvas提供了子目标。UI艺术家可以使用Shader Graph为他们的UI元素创建自定义shader。定义UI元素的整体外观和风格,创建动画UI效果,并定义自定义按钮状态,同时使用更少的纹理内存。
  • 启用了Shader Graph Canvas主节点,以允许用户在HDRP,URP和Built-in中为Canvas创建UI shader。

SpeedTree 🔗

使用传输遮罩在HDRP中提高SpeedTree的视觉质量,只在叶子上应用次表面散射。HDRP/Nature/SpeedTree8.shadergraph使用其次表面贴图作为传输遮罩节点,以消除树皮和小枝的非预期光传输。这也修复了过亮的广告牌照明与3D几何图形照明不匹配的问题。

Splines 🔗

您现在可以在Spline对象上存储个性化数据。此外,编辑Inspector中点的界面已得到增强,某些API已向公众开放。当你在处理splines时,现在可以使用新的Scene视图上下文菜单。

Test Framework 🔗

  • 根据测试级别启用了重新尝试和重复测试。一旦测试完成了第一次迭代,Editor就会重新尝试或重复测试。将命令行参数传递给Editor以:
    • 重复x次运行测试x次数或直到失败。这对测试不稳定的测试很有用。
    • 重试x,如果测试失败。这将运行测试x次数或直到成功。
  • 通过使用Editor命令行新参数-randomOrderSeed x,你可以按随机顺序运行测试,其中x是不同于0的整数。如果在项目中添加了新的测试,通过相同的种子将会保持随机顺序,新的测试将根据随机列表相应地放置。
  • 新增TestFileReferences.json在播放器的构建步骤上生成,以便稍后由Test runners使用以丰富运行部分的数据。
  • UTF版本现在会自动为SRP测试更新。

Version control 🔗

添加了一个项目选项,用于支持追踪存在于项目根文件夹之外的磁盘上的包。

VFX Graph 🔗

  • 在模板窗口中添加了具有预定义效果的VFX Graph资产。你可以将这些模板作为自己效果的起点。
  • 新增了自定义HLSL块和操作员。自定义HLSL节点让您在粒子模拟期间执行自己的代码。在VFX Graph上下文中,您可以使用操作员进行横向流动,或者使用块进行纵向流动。
  • 添加了URP Decals与VFX Graph。现在在VFX Graph中支持URP Lit decal输出,使得在URP上创建符合场景照明和材料的惊艳decal效果成为可能。
  • 在HDRP和URP中为Shader Graph烟雾效果添加照明。这意味着您可以创建使用六方向照明的lit shader的自定义烟雾shader。
  • 扩展了URP中的Camera Depth和Color buffer行为。这意味着您可以使用深度缓冲区进行基于深度的碰撞,或者采样色彩缓冲区以创建自定义效果。
  • 在URP中添加了对运动向量的支持。
  • 对Shader Graph添加了对运动向量的支持。
  • 新增了使用VFX Graph的Shade Graph集成来使用材料变体工作流覆盖VFX Output中设置的能力。
  • 启用了VFX instancing,可以公开纹理,网格或图形缓冲区。

Web platform (previously WebGL) 🔗

  • Unity网页构建现在可以利用Emscripten工具链中最新的大小和性能优化。
  • 增加了支持指定您希望应用程序在运行时启动的浏览器类型及其可执行路径。您可以通过命令行或在"构建设置"窗口中的GUI设置来指定这个。

XR 🔗

  • 新增了对Hololens自动化的支持。
  • 扩展了Unity在URP,HDRP和内建渲染管线中对色调映射和输出到HDR显示器的集成支持,以支持具有HDR显示器的XR设备。

结论 🔗

搬砖愉快!