注意:按照版本顺序遵循此部分中的建议。例如,如果需要将项目从 2018 升级到 2020,请在阅读 2020 升级指南之前阅读 2019 升级指南,了解是否需要进行任何更改。
本页面列出了从 2019 版本升级到 2020 LTS 时在 Unity 2020 LTS 中可能对现有项目造成影响的更改。
Note that 2020 LTS is also known as 2020.3.
Unity 可能会更改导入到项目中的 3D 对象的网格 UV。
Unity 会变换所有导入的网格顶点的位置以便采用 Unity 单位自动缩放。
From Unity 2020.1, Unity generates lightmap UVs using the transformed Mesh vertices, if you’ve enabled Generate Lightmap UVs. Prior to Unity 2020.1, Unity generated lightmap UV maps using the original imported Mesh vertex positions, before the automatic position transformation.
UVs generated after the vertex transformation are more accurate to the original shape and scale of your imported object. Back to top
From Unity 2020.1, Unity generates a different hash for all asset bundles in your project. This ensures all bundles are built, including the ones with the same content but with different loadable paths. Back to top
从 Unity 2020.1 开始,如果要升级的项目具有使用多玩家 HLAPI 的脚本,请从 Package Manager 安装多玩家 HLAPI 包。
From Unity 2019.1 to 2019.4, Unity automatically installed the multiplayer HLAPI package when you upgraded a project created in Unity 2018.4 or earlier. Back to top
Unity 的渐进光照贴图由 CPU 和 GPU 光照贴图组成。
从 Unity 2020.1 开始,GPU 光照贴图支持细节级别 (LOD) 烘焙。
The CPU lightmapper uses the same baking algorithm and this lets Unity use all available CPU cores for faster baking times in Scenes with LOD values above 0.
若要在场景中升级 LOD,请清除烘焙光照贴图,然后重新生成它。为此需要执行以下操作:
To update Adaptive Performance from 1.0 to 2.0, see the Adaptive Performance upgrade guide. Back to top
MacOS 独立 Xcode 项目构建路径选择已更改。现在必须提供所需目录的路径,并在目标目录中创建 .xcodeproj 和随附文件。 MacOS 构建文件夹不能位于项目目录中。 请参阅手册页面了解 Xcode 项目结构。
为了确保力场属性一致的行为,Unity 现在使用 30fps 的参考帧率作为模拟的基础。 如果您的应用使用不同的帧率,此更改可能会影响以下力场属性:
如果这些设置的行为与早期 Unity 版本不同,请调整它们的值。
UnityEngine.UI.Graphic
不再为 CanvasRenderer
组件提供 RequireComponent
属性。要更新用户编写的继承自 Graphic 的类并在 UGUI 画布中呈现,请添加以下 RequireComponent
属性:
using UnityEngine;
[RequireComponent(typeof (CanvasRenderer))]
public class exampleClass: Graphic
{
...
}
代码优化的引入改变了代码覆盖率包的工作方式。要在 2020LTS 中继续对您的项目使用代码覆盖率包,请设置代码优化以在调试模式下编译脚本。调试模式启用 C# 调试并且需要该功能以获得准确的代码覆盖率结果。 为确保代码优化设置为调试模式,您可以执行以下操作之一:
CompilationPipeline.codeOptimization =CodeOptimization.Debug
。-debugCodeOptimization
传递给命令行。对于使用 Unity 2020 版本之前的 Unity 版本的现有 AR/VR 项目,本文档提供了有关升级这些项目的指南。
将现有项目升级到 Unity 2020 版本及更高版本时,应该会收到一个通知,指出已弃用的 XR 集成(以前在 Player/XR Settings 中)已禁用。
若要启用 AR/VR,请使用 Project Settings 中的 XR Plug-in Management 并选择目标平台。
平台 | 构建目标 | 插件提供商 |
---|---|---|
Oculus Quest | Android | Oculus |
Oculus Rift 和 Rift S | Desktop | Oculus |
Windows Mixed Reality VR | UWP | Windows Mixed Reality |
平台 | 构建目标 | 插件提供商 |
---|---|---|
ARCore 设备 | Android | ARCore |
ARKit 设备 | iOS | ARKit |
HoloLens | UWP | Windows Mixed Reality |
Magic Leap One | Lumin | Magic Leap |
确保项目的渲染和质量设置是最佳的。下表按目标平台详细介绍了推荐设置。
平台 | 图形 API | 立体渲染模式 |
---|---|---|
Oculus Quest | OpenGL ES 3.0 | 多视图 |
Oculus Rift 和 Rift S | DX11 | 单通道实例化 |
Windows Mixed Reality VR | DX11 | 单通道实例化 |
平台 | 图形 API | 立体渲染模式 |
---|---|---|
ARCore 设备 | OpenGL ES 3.0 | 无 |
ARKit 设备 | Metal | 无 |
HoloLens | DX11 | 单通道实例化 |
Magic Leap One | OpenGL ES 3.2 | 单通道实例化 |
注意:“单通道”不再是渲染模式选项,因为“单通道实例化”性能更好。如果要从“单通道”升级到“单通道实例化”,则可能需要更新项目中的自定义着色器。
内置渲染管线、通用渲染管线和高清渲染管线在 2020.1 中全部受支持。使用我们最新的可编程渲染管线有很多好处,但这不是此升级过程中的要求。
Note: If you are using third-party assets and/or custom shaders, you might need to update assets with shaders compatible with “single passed instanced”.
如果使用 XR 交互工具包,则无需对摄像机跟踪进行更改。
If you are using a third-party toolkit for camera tracking (OVRCameraRig, etc), make sure you have updated to the latest version. Note that upgrading to latest versions of third-party tools might cause script errors, please reference third-party documentation.
如果使用跟踪姿势驱动程序进行摄像机跟踪,请参阅我们的迁移指南。
If you use any toolkits developed by our supported platforms (Oculus Integration package, MRTK, MLTK), make sure you’re using the latest version. Note that upgrading to the latest versions of third-party tools might cause upgrade-related script errors, and you may need to reference corresponding documentation of those toolkits.
You may have upgrade-related script errors that must be fixed before installing XR Plug-in Management.
OpenVR 和 Google Cardboard XR 插件分别由 Valve 和 Google 进行开发和维护。适用于这两个平台的安装说明链接可以在我们的文档中找到。
是,我们支持的平台集成与 Unity 输入系统兼容。
是,我们支持的平台集成与通用渲染管线和高清渲染管线兼容。
The XR Interaction Toolkit is still in preview. To view preview packages in 2020.1, you must enable it using the Package Manager tab in Project Settings. When enabled, preview packages are displayed in the Unity Registry of the Package Manager.
Play in editor 支持仅适用于为其提供程序提供独立支持的提供程序。如果提供程序未在 XR Plug-in Management 提供程序选择 UI 的独立部分中列出,则 Play in Editor 将不适用。查看提供程序文档,因为它们可能支持其他一些集成 Play in Editor 支持的方法。
2020.1 不再支持“单通道”,因为“单通道实例化”性能最好。如果项目曾使用“单通道”渲染,则可能需要更新项目中的着色器。将自定义着色器用于“单通道”的第三方库可能也需要更新。可以选择从“单通道”升级到“多通道”,着色器应该可正常工作,但建议以“单通道实例化”为目标以获得最佳性能。
Graphics API is configured in Player settings (“Edit” > “Project Settings” > “Player”).
渲染模式在 Project Settings 中 XR Plug-in Management 下嵌套的提供程序特定设置中进行配置。
renderScale has been removed and replaced with eyeTextureResolutionScale but that has been a script updater task since 2019.3. If you are upgrading from a Unity version prior to 2019.3, you must manually replace renderScale with eyeTextureResolutionScale.
The headset needs to be detected before any device inputs can be detected. One common issue when testing, is that many people let their headsets rest on a table while debugging their interactions. The controllers aren’t recognized until you wear the headset (or the proximity sensor inside the headset gets activated). If you don’t get any input from your device, put on your headset after starting the app, or cover the proximity sensor.
ARKit 未提供用于更改摄像机 FOV 的选项。