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 会自动将 LWRP 更新到 7.x.x 版本,并将 URP 包作为更新的 LWRP 包的依赖项引入。Unity 脚本更新程序会自动升级您的脚本文件。当脚本更新程序完成时,您的所有 脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性并以任何您喜欢的形式响应用户输入。 更多信息
参见 术语表 应该能够正确编译。
如果您的 LWRP 项目使用 Shader.Find
来搜索 LWRP 着色器在 GPU 上运行的程序。 更多信息
参见 术语表,则需要更改搜索路径。
要执行此操作
Lightweight
的 Shader.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 的即将发布的版本中得到支持。
作为自动升级过程的一部分,Unity 将 URP 安装为 LWRP 的依赖项。您现在必须将 URP 安装为项目本身的依赖项,以便在删除 LWRP 时,Unity 不会自动删除 URP。
要将 URP 安装为项目的依赖项
<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。