版本:Unity 6 (6000.0)
语言:英语
升级到 Universal Render Pipeline 7.2.0 版本
URP 中的已知问题

从 Lightweight Render Pipeline 升级到 Universal Render Pipeline

Universal 渲染管线一系列将场景内容显示到屏幕上的操作。Unity 允许您从预构建的渲染管线中选择,或编写自己的渲染管线。 更多信息
参见 术语表
(URP) 在 Unity 2019.3 中取代了 Lightweight Render Pipeline (LWRP)。如果您的项目使用 LWRP,则必须将其升级为 URP 才能使用 Unity 2019.3。

Unity 会自动升级某些内容,您必须手动进行一些更改。按照本指南中的步骤,从使用 LWRP 转换到使用 URP。

升级前

更新程序集定义资产

URP 使用 GUID 而不是程序集定义字符串名称。如果您在项目中使用程序集定义资产 (ASMDefs),则应确保在每个程序集定义资产中都启用了使用 GUID

Unity 会在升级过程中自动升级对 LWRP 的任何现有字符串引用,但最佳做法是在您的程序集定义资产上使用 GUID,以便将来能够防范此问题。

对于项目中的每个程序集定义资产

  • 选择程序集定义资产
  • 检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑这些值。 更多信息
    参见 术语表
    中,启用使用 GUID

有关使用程序集定义文件的详细信息,请参阅有关程序集定义的文档

升级流程

升级您的 LWRP 版本

要开始升级流程

  • 在 Unity 2019.3 中打开要升级的项目。

Unity 会自动将 LWRP 更新到 7.x.x 版本,并将 URP 包作为更新的 LWRP 包的依赖项引入。Unity 脚本更新程序会自动升级您的脚本文件。当脚本更新程序完成时,您的所有 脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性并以任何您喜欢的形式响应用户输入。 更多信息
参见 术语表
应该能够正确编译。

升级着色器搜索路径

如果您的 LWRP 项目使用 Shader.Find 来搜索 LWRP 着色器在 GPU 上运行的程序。 更多信息
参见 术语表
,则需要更改搜索路径。

要执行此操作

  • 更改所有搜索 LightweightShader.Find 实例,使其搜索 Universal

升级自定义着色器

升级标签

URP 使用自己的脚本标签。如果您的着色器使用 LWRP LightMode 标签,它们将在您的 URP 项目中工作,因为 Unity 使用内部别名来实现这一点。但是,您应该手动更改标签以使您的项目将来能够防范此问题。

要执行此操作

  • 更改所有 Lightweight2D 标签实例为 Universal2D
  • 更改所有 LightweightForward 标签实例为 UniversalForward

除此之外,URP 还使用与 LWRP 不同的渲染管线标签。如果您的自定义着色器包含此标签,则需要手动更改它才能使着色器正常工作。

  • 更改所有 LightweightPipeline 标签实例为 UniversalPipeline

升级着色器名称

以下着色器名称已更改为 URP,因此您需要手动更新您的着色器文件

  • 更改所有 UsePass 'Lightweight Render Pipeline/...' 实例为 UsePass 'Universal Render Pipeline/...'

升级包含路径

URP 使用与 LWRP 不同的包含路径。LWRP 7.x.x 包含转发包含,因此您的自定义着色器将从 LWRP 升级到 URP。但是,URP 7.x.x 不包含转发包含,因此您必须手动更新包含路径。

  • 更改所有 #include 'Packages/com.unity.render-pipelines.lightweight/xxx' 实例为 #include 'Packages/com.unity.render-pipelines.universal/xxx'

升级命名空间

在项目中的 .cs 文件中,查找并替换对 LWRP 命名空间的引用,使其变为新的 Universal 命名空间。

  • 更改所有 UnityEditor.Rendering.LWRP.xxx 实例为 UnityEditor.Rendering.Universal.xxx

升级后期处理效果

URP 7.x 版本支持 Post Processing Stack v2 (PPv2) 和其自己的集成后期处理解决方案。如果您的项目中安装了 Post Processing Version 2 包,并且您想使用 URP 的集成 后期处理在图像显示在屏幕上之前应用滤镜和效果来改善产品视觉效果的过程。您可以使用后期处理效果来模拟物理相机和胶片属性,例如 Bloom 和景深。 更多信息 后期处理, 后处理, 后处理
参见 术语表
解决方案,则需要在将 URP 安装到项目中之前删除 Post Processing Stack v2 包。安装 URP 后,您可以重新创建后期处理效果。

从 LWRP 升级到 URP 的后期处理效果是一个手动过程。您必须使用 URP 的后期处理实现手动重新创建项目中的每个后期处理配置文件。

URP 的集成后期处理解决方案目前不支持自定义后期处理效果。如果您的项目使用自定义后期处理效果,则目前无法在 URP 的集成后期处理解决方案中重新创建这些效果。自定义后期处理效果将在 URP 的即将发布的版本中得到支持。

安装 URP 并删除 LWRP

作为自动升级过程的一部分,Unity 将 URP 安装为 LWRP 的依赖项。您现在必须将 URP 安装为项目本身的依赖项,以便在删除 LWRP 时,Unity 不会自动删除 URP。

要将 URP 安装为项目的依赖项

  • 转到菜单:窗口 > 包管理器
  • 找到Universal RP 包,并记下其名称右侧的版本号。这是已添加到项目的 URP 版本。
  • 关闭 Unity。
  • 在文件资源管理器中,打开 Unity 项目的根文件夹。
  • 打开 Packages 文件夹,找到 manifest.json。这是项目的 项目清单每个 Unity 项目都有一个项目清单,它充当包管理器的入口点。此文件必须位于 <project>/Packages 目录中。包管理器使用它来配置许多内容,包括该项目的依赖项列表,以及查询包的任何包存储库。 更多信息
    参见 术语表
    文件。
  • 使用文本编辑器打开项目清单文件。
  • 在依赖项部分的顶部,添加以下条目
"com.unity.render-pipelines.universal": "[Version number you noted earlier]"

例如,如果 URP 的版本为 7.1.1,则依赖项部分将如下所示

"dependencies": {
    "com.unity.render-pipelines.universal": "7.1.1",
    ...
}

这将标记已安装为项目依赖项的 URP 版本。现在您可以安全地删除 LWRP。

  • 在 Unity 中打开您的项目。
  • 打开包管理器窗口。
  • 找到Lightweight RP 并选择它。
  • 在包管理器窗口的右下角,单击删除。Unity 将完全从项目中删除 LWRP 包。
升级到 Universal Render Pipeline 7.2.0 版本
URP 中的已知问题