版本:Unity 6 (6000.0)
语言 : 英语
升级到 Unity 2023.2
升级到 Unity 2022 LTS

升级到 Unity 2023.1

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

页面大纲

渲染管线

本升级指南介绍如何将 Unity 的内置渲染管线升级到 2023.1 版本。要将其他渲染管线升级到 2023.1 版本,请参阅

要升级其他包,请参考您使用的包的文档。

LightingSettings 中的高斯滤波半径属性现在是浮点数。

渐进式光照贴图器 中的 高级 滤波选项(照明窗口 > 光照贴图设置 > 滤波 > 直接滤波 > 高斯)中,包含一个 高斯 选项。现在,高斯 滤波的 半径 控件支持小数增量,例如 0.5。以前,此控件仅支持整数步长(1 到 5)。

由于此更改,这些属性在 C# API 中已弃用。

  • int LightingSettings.filteringGaussRadiusAO
  • int LightingSettings.filteringGaussRadiusDirect
  • int LightingSettings.filteringGaussRadiusIndirect

弃用属性的浮点数替换是

  • float LightingSettings.filteringGaussianRadiusAO
  • float LightingSettings.filteringGaussianRadiusDirect
  • float LightingSettings.filteringGaussianRadiusIndirect

您可以调用其中一个已弃用的成员函数将高斯滤波半径四舍五入到最接近的整数。

改进光探测器能量守恒。

光探测器现在与 光照贴图预渲染纹理,包含光源对场景中静态物体的影响。光照贴图覆盖在场景几何体之上,以创建照明效果。 更多信息
参见 术语表
一样亮。以前,Unity 的 光探测器光探测器存储有关光线如何在场景空间中传播的信息。在给定空间内排列的光探测器的集合可以改善该空间内移动物体和静态 LOD 景物的照明。 更多信息
参见 术语表
仅达到应有亮度的 94%。因此,使用光探测器照明的物体看起来比使用光照贴图照明的物体暗一些。由于此更改的细微性,许多用户可能不会看到明显的差异。

如果您更喜欢旧的外观,您可以通过以下方式实现它。

  1. 烘焙光探测器。
  2. 使用 C# 获取数组 LightmapSettings.lightProbes.bakedProbes 的副本。
  3. 对于每个 SphericalHarmonicsL2 实例,将系数 0 乘以 16/17。
  4. 将您的数组副本写回 LightmapSettings.lightProbes.bakedProbes

Enlighten 烘焙全局照明不再可用。

EnlightenGeomerics 在 Unity 中用于 Enlighten 实时全局照明的照明系统。 更多信息
参见 术语表
烘焙的 全局照明一组模拟直接和间接照明的技术,以提供逼真的照明效果。
参见 术语表
光照贴图后端不再可用。

当您将项目升级到此版本时,Unity 会从 光照贴图器Unity 中根据场景中灯光和几何体的排列烘焙光照贴图的工具。 更多信息
参见 术语表
选择下拉菜单中删除 Enlighten 烘焙后端,并在您选择 Enlighten 烘焙后端的每个 场景场景包含游戏环境和菜单。将每个唯一的场景文件视为唯一的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是设计和构建游戏的一部分。 更多信息
参见 术语表
中替换为渐进式光照贴图器。

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

Enlighten 预计算的实时全局照明仍然可用,并且在 Unity 2024 LTS 之前都受支持。

Android:Java 类 UnityPlayer 需要重命名为 UnityPlayerForActivityOrService。

UnityPlayer Java 类已被两个新的桥接类 UnityPlayerForActivityOrServiceUnityPlayerForGameActivity 替换。这两个新类都派生自 UnityPlayer,但公共方法(如 displayChangedwindowFocusChanged)已从 UnityPlayer 特别移动到 UnityPlayerForActivityOrService

如果您 扩展默认的 Unity 活动 并使用 UnityPlayer 类,您可能会遇到编译错误。在这种情况下,将 UnityPlayer 重命名为 UnityPlayerForActivityOrService

Android:UnityPlayer Java 类不再扩展 FrameLayout。

UnityPlayer Java 类不再扩展 FrameLayout。如果您需要访问 FrameLayout,请在 UnityPlayer 实例上调用 getFrameLayout 函数。

FetchFirstCompatibleTypeUsingScriptableRenderPipelineExtension 被 GetDerivedTypesSupportedOnCurrentPipeline 替换。

RenderPipelineEditorUtility.FetchFirstCompatibleTypeUsingScriptableRenderPipelineExtension 现在已弃用。请改用 GetDerivedTypesSupportedOnCurrentPipeline。此方法的签名也不同;现在它返回所有派生类型,而不仅仅是遇到的第一个类型。这可以防止出现不一致,因为 Unity 不保证类型顺序。

CustomEditorForRenderPipelineAttribute 和 VolumeComponentMenuForRenderPipelineAttribute 已弃用。

CustomEditorForRenderPipelineAttribute 和 VolumeComponentMenuForRenderPipelineAttribute 现在已弃用。请改用 CustomEditorVolumeComponentMenu。要限制在这些属性处于活动状态时可用的管道选择,请将它们与 SupportedOnRenderPipelineAttribute 结合使用并指定 RenderPipelineAsset 类型。如果您想激活对内置渲染管线有效的 SRP 属性,请使用不带参数的 SupportedOnRenderPipelineAttribute。当需要在特定管道上激活它们时,这将为这两个属性提供统一的工作流程。

Android Gradle 模板使用方式的更改。

引入了用于修改 Android Gradle一个 Android 构建系统,可自动执行多个构建过程。这种自动化意味着许多常见的构建错误不太可能发生。 更多信息
参见 术语表
项目的新 API。该 API 可用于替换旧的 Android Gradle 模板工作流程。如果未使用新的 API,模板将按以前的方式工作。

要使用新的 API,可以使用 模板升级器

  1. 打开 Android 播放器设置设置,允许您为 Unity 构建的最终游戏设置各种特定于播放器的选项。 更多信息
    参见 术语表
  2. 转到 发布设置 > 构建
  3. 选择 将模板升级到 C#
升级到 Unity 2023.2
升级到 Unity 2022 LTS