Version: 6000.3
语言: 中文
升级到 Unity 2023.1
升级到 Unity 2021 LTS

升级到 Unity 2022 LTS

此页面列出了 Unity 2022 LTS 版本中的更改,当您将现有项目从 2021 版本升级到 2022 LTS 时,这些更改可能会影响现有项目。

注意:2022 LTS 也称为 2022.3.0。

页面大纲

铰接驱动forceLimit属性现在接受力输入而不是脉冲

铰接驱动forceLimit特征以前用作脉冲极限而不是力极限。这使得力限制依赖于fixedDeltaTime价值。

如果您已经适应了使用此值作为冲动,那么当您升级时,您的值forceLimit在“Articulation Drive”(Articulation Drive) 中的 Articulation Body 组件中,将大比例不正确。

当您打开旧项目时,会进行检查。升级项目时,Unity 会自动将相关值除以Time.fixedDeltaTime>设置,以避免配置错误。 这捕获了根据项目设置的时间值模拟机器人的大多数情况。

如果使用脚本中的自定义时间值来模拟机器人,则需要手动更正这些值。

更改生成的光照贴图UV

Unity 的 UV 生成过程已更改。光照贴图(Lightmaps一种预渲染的纹理,包含光源对场景中静态对象的效果。光照贴图覆盖在场景几何体之上,以创建光照效果。更多信息
请参阅术语表
在使用“模型导入设置”中的“生成光照贴图UV”选项的项目中可能会损坏。要解决此问题,请重新烘焙项目中的所有光照贴图。

此更改仅影响使用生成光照贴图UV的项目。

更改为GradientField在 UI 工具包中

从 Unity 2022.1 开始,颜色选择器GradientField没有HDR高动态范围
请参阅术语表
默认启用。使用GradientField现在使用常规颜色选择器而不是 HDR 颜色选择器。

要继续使用 HDR 颜色选择器,您可以使用GradientField.

UI 工具包数字和复合字段在运行时可用

现在,以下字段可在运行时自动工作:

  • DoubleField
  • FloatField
  • IntegerField
  • LongField
  • Hash128Field
  • RectField
  • RectIntField
  • Vector2Field
  • Vector3Field
  • Vector4Field
  • Vector2IntField
  • Vector3IntField
  • BoundsField
  • BoundsIntField

项目中的UXML文件不会更新,升级后仍能正常工作。但是,当您通过 UI Builder 添加新的提升类型时,它会破坏 UXML 资源与旧 Unity 版本的向后兼容性。为了保持UXL资源向后兼容,你需要使用旧类型(UnityEditor.UIElements命名空间)在UXML文件中。

默认情况下,输入管理中的物理键选项处于启用状态

“物理键”选项允许您将键代码映射到物理键盘布局,而不是映射到不同区域的用户之间可能不同的特定于语言的布局。例如,在某些键盘上,第一行字母显示为“QWERTY”,而在其他键盘上,第一行字母显示为“AZERTY”。这意味着,如果您编写了特定控件的脚本以使用众所周知的“WASD”键进行移动,则它们在 AZERTY 布局键盘上将不会采用正确的物理排列(如箭头键排列)。启用物理键后,Unity 使用通用 ANSI/ISO“Qwerty”布局来表示键的物理位置,而不管用户的实际布局如何。这意味着,如果指定“Q”键,它将始终是字母键第一行最左边的字母,即使用户的键盘在该位置有不同的字母。

从 2022.1 开始,该选项默认启用,目的是在将来弃用和删除旧行为。

添加了对BatchRendererGroup

BatchRendererGroupAPI 最初是为 MegaCity 演示编写的,但从未完整记录或使用,没有大量实现细节。此 API 已从头开始重写,并得到完整的文档记录和支持。

有关如何使用新接口的信息,请参阅 BatchRendererGroup 页面。

渲染管线

本升级指南介绍了如何升级到 Unity 内置渲染管线的 2022.2 版本。

要升级到其他渲染管道到版本 2022.2,请参阅您正在使用的渲染管道的文档:

要升级其他软件包,请参阅您正在使用的软件包的文档。

Enlighten 烘焙全局光照已弃用

EnlightenGeomerics 的照明系统,用于 Unity 中用于 Enlighten 实时全局照明。更多信息
请参阅术语表
全局光照 一组对直接和间接光照进行建模以提供逼真的光照结果的技术。
请参阅术语表
默认情况下,光照贴图后端不再可用。当您将项目升级到此版本时,Unity 会从lightmapper:Unity 中的一种工具,可根据场景中光源和几何体的排列来烘焙光照贴图。更多信息
请参阅术语表
选择下拉菜单,并在每个场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
选择了 Enlighten 烘焙后端的位置。

在 Apple 芯片设备上,Unity 将渐进式 GPU 光照贴图器替换为 Enlighten 烘焙后端。在所有其他设备上,Unity 会选择 CPU 渐进式光照贴图器。

要继续使用 Enlighten 烘焙后端,请打开 编辑(Edit) > 项目设置(Project Settings) > 编辑器(Editor),然后在该菜单的 图形(Graphics) 部分中,激活 为烘焙GI(旧版)启用启蒙(Enlighten) )。但是,此选项在 2023.1 及更高版本中不可用。

最小弹跳数(Minimum Bounces) 在 光照(Lighting) 窗口中不可用

渐进式光照贴图器的 最小弹跳(Minimum Bounces) 属性在 光照(Lighting) 窗口中不再可用。

将项目升级到 2022.2 时,Unity 会将 Minimum Bounces 值重置为 2,这是光照贴图的建议最小反弹次数。 要更改此值,请编辑 LightingSettings API 属性 minBounces

Unity 的默认 Gradle 模板已更改

在 2022.2 中,Unity 更新了 Android 使用的所有工具的默认版本。新版本如下:

工具 版本
SDK
Cmdline-tools 组件 版本 6.0
构建工具组件版本 32.0.0
平台工具组件 32.0.0
平台(API 级别) 默认添加 31 和 32
工具组件 删除
NDK的 R23B
JDK(OpenJDK) 11.0.14.1+1
Gradle一种 Android 构建系统,可自动执行多个构建过程。这种自动化意味着许多常见的生成错误不太可能发生。更多信息
请参阅术语表
7.2
Android Gradle 插件 7.1.2

Gradle 版本 7.2 的更新更改了一些 build.gradle 文件配置选项。这需要对 Unity 的默认 gradle 模板进行重大更改。Unity 不会尝试升级自定义 Gradle 模板以匹配新格式,这意味着包含自定义模板文件的项目可能无法构建。要解决此问题,请根据新的默认模板文件重新创建任何自定义模板文件。

有关build.gradle配置选项更改,请参阅 Android Gradle 插件发行说明

导航和寻路正在从 Unity 核心迁移到 AI 导航包

软件包文档位于此处:https://docs.unity3d.com/Packages/com.unity.ai.navigation@latest

如果你有在早期版本的 Unity 引擎中使用导航功能创建的项目,你可以执行以下作之一:

  • 继续按原样使用项目
  • 转换项目以使用新包

无论哪种情况,AI 导航包都会自动安装并添加到您的项目中。

要开始使用新包,您需要按如下方式转换项目:

  1. 转到 Window > AI > NavMesh Updater
  2. NavMeshUnity 生成的网格,用于近似环境中的可行走区域和障碍物,以进行路径查找和 AI 控制的导航。更多信息
    请参阅术语表
    更新程序窗口,选择要转换的数据类型。
  3. 单击初始化转换器以检测并显示所选数据类型。
  4. 选择要转换的数据。
  5. 单击“转换资产”以完成转换。

作为转换过程的一部分,寻路网格体更新程序会进行以下更改:

  • 以前烘焙并嵌入到场景中的任何寻路网格现在都引用自在新的游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
    请参阅术语表
    称为导航
  • 任何标有 Navigation Static 的对象现在都将具有具有适当设置的 NavMeshModifier 组件。

如果不同场景中的寻路网格体使用不同的代理设置烘焙,则需要创建新的代理类型以匹配这些设置。要创建代理类型,请执行以下作:

  1. 转到窗口> AI >导航
  2. 选择代理。
  3. 创建新条目并指定相关设置。

创建新条目后,您需要执行以下作:

  • 将新创建的代理类型分配给为该场景创建的导航中的相应 NavMeshSurfaces,
  • 将代理类型分配给要使用该寻路网格的寻路网格体代理。

要查找用于每个现有寻路网格体的设置,请在项目窗口一个窗口,显示您的内容Assets文件夹(项目选项卡)更多信息
术语表中查看
.NavMesh 设置显示在检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
.

如果您的项目使用NavMeshSurface,NavMeshModifier,NavMeshModifierVolumeNavMeshLink组件定义为脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
Unity 的 NavMeshComponents GitHub 存储库下载,然后在将 AI 导航包添加到项目之前删除这些脚本和任何关联文件。如果不删除这些脚本,则可能会在控制台中遇到与这些组件相关的冲突和错误。新组件的行为与项目中的旧组件相同,但使用以下组件时除外:

  • NavMeshSurface组件现在包含一个选项,用于仅使用具有NavMeshModifier在烘烤过程中。
  • 现在,您可以指定是否应用NavMeshModifier组件添加到层次结构中的子对象。

其他资源

升级到 Unity 2023.1
升级到 Unity 2021 LTS