Unity3D项目升级URP
当前项目Unity版本:2019.4.23.f1
1.下载URP相关 Package包
Window->Package Manger
2.创建URP PipelineAsset(ForwardRender)文件,并指定一下
(1)创建文件
创建PipelineAsset(ForwardRender) 文件
PipelineAsset(ForwardRender)文件
(2)指定项目使用URP渲染管线,需要设置2处
打开Editor->Project Settting窗口
指定Graphics使用URP
指定Quality使用URP
3.升级shader,支持URP
(1)升级unity自带的shader
升级Unity自带shader
(2) 自定义shader,只能手动修改。 并且追加到Graphics中
可以参考:内置管线Shader升级到URP详细手册
https://www.jianshu.com/p/3fef69e2efb6
4.多相机实现方式修改。
URP为了实现多相机,Camera添加RenderType属性。整个游戏只能有一个Base,其他都是Overlay,并将Overlay相机添加到 Base相机的Stack列表里。
注意:升级URP之后,Camera.depth不管用了,用Stack列表里的顺序替代,先添加进列表的相机先渲染,后添加的后渲染。
关于设置RenderType和将Overlay相机添加进Base的Stack列表,并控制Stack列表里相机顺序,可以自定义个脚本挂到Camera所在GameObject上。
- using UnityEngine;
- using UnityEngine.Rendering.Universal;
- [RequireComponent(typeof(Camera))]
- [DisallowMultipleComponent]
- public class URPCamera : MonoBehaviour
- {
- public static UniversalAdditionalCameraData BaseCamera;
- [Tooltip("整个游戏只能有1个Base,其他都是Overlay")]
- public CameraRenderType m_CameraRenderType = CameraRenderType.Overlay;
- [Tooltip("相机depth(赋值0,取老的Camera.depth)")]
- public float m_CameraDepth;
- private Camera m_Camera;
- private void Awake()
- {
- m_Camera = GetComponent();
- UniversalAdditionalCameraData universalAdditionalCameraData = m_Camera.GetUniversalAdditionalCameraData();
- universalAdditionalCameraData.renderType = m_CameraRenderType;
- if (m_CameraRenderType == CameraRenderType.Base)
- {
- if (BaseCamera != null)
- {
- Debug.LogErrorFormat("URP Camera 配置错误,有多个Base Camera!!! Old = {0}, New = {1} ", BaseCamera.name, m_Camera.name);
- }
- else
- {
- BaseCamera = universalAdditionalCameraData;
- }
- }
- if (m_CameraDepth == 0)
- m_CameraDepth = m_Camera.depth;
- }
- private void Start()
- {
- if (m_CameraRenderType == CameraRenderType.Overlay)
- {
- if (BaseCamera != null)
- {
- if (!BaseCamera.cameraStack.Contains(m_Camera))
- BaseCamera.cameraStack.Add(m_Camera);
- BaseCamera.cameraStack.Sort((A, B) => { return A.gameObject.GetComponent().m_CameraDepth.CompareTo(B.gameObject.GetComponent().m_CameraDepth); });
- }
- else
- {
- Debug.LogError("URP Camera 配置错误,没有Base Camera!!!");
- }
- }
- }
- private void OnDestroy()
- {
- if (m_CameraRenderType == CameraRenderType.Overlay)
- {
- if (BaseCamera != null)
- {
- BaseCamera.cameraStack.Remove(m_Camera);
- }
- }
- }
- }
5.后处理,要换实现方式。
可以参考:
URP屏幕后处理
https://www.jianshu.com/p/d23671fdc2da
到此 URP算是升级完毕了。
Unity3D项目升级URP相关推荐
- Unity 升级项目到Urp(通用渲染管线)以及画面后处理
前言: Urp全称为Universal Render Pipeline,即通用渲染管线 在开始学习Urp之前,需要了解一下,什么是Render PipeLine(渲染管线),渲染管线也称为渲染流水线或 ...
- Unity3D项目加密-精锐5加密锁解决方案
Unity3D项目加密 Unity3D项目研发完成,发布前开发者需要对代码及资源进行加密,防止代码被反编译,防止资源被盗窃,造成不必要的损失.如果不做加密,可能很快就会出现一堆破解版游戏. Unity ...
- Unity3D项目实战笔记(10):Unity3D编译IPA的PostEvents–节约时间利器
最近,SDK支付等接入差不多了,就从Unity3D生成IPA (企业版License), 然,需要手动执行的PostEvents竟然多大10项+, 这些我默默的承受了1周时间,每次约浪费20分钟-额外 ...
- 将 Net 项目升级 Core项目经验:(一)迁移Net项目为Net Core\Standard项目
迁移Net项目为Net Core\Standard项目 背景: 我们公司内部有自己ORM开发框架,最新因为需要将系统迁移到国产服务器上,所以首先需要将最基础的ORM框架改造可以运行在国产服务器上.对于 ...
- 借助 SAP 电商云 Spartacus UI 提供的 Schematics 辅助您的前端项目升级
将 Spartacus 升级到新的主要版本(例如,从 3.x 到 4.0)时,Spartacus 迁移机制会自动修复新版本中修改或删除的代码. 当您处理功能或错误,或对 Spartacus 源代码进行 ...
- C# 利用.NET 升级助手将.NET Framework项目升级为.NET 6
概述 .NET6 正式版本已经发布有一阵子了,今天我就体验一下如何将.NET Framework的项目升级为.NET 6. 升级条件: Windows 操作系统 .NET 6 SDK Visual S ...
- Asp.NetCore3.1开源项目升级为.Net6.0
概述 自从.Net6.0出来后,一直想之前开发的项目升级.Net6.0,有时想想毕竟中间还跨了个5.0版本,升级起来不知道坑大不大,最近抽时间对升级的方案做了些研究,然后将代码升级为.Net6.0.本 ...
- ASP.NET Core 实战:将 .NET Core 2.0 项目升级到 .NET Core 2.1
一.前言 最近一两个星期,加班,然后回去后弄自己的博客,把自己的电脑从 Windows 10 改到 Ubuntu 18.10 又弄回 Windows 10,原本计划的学习 Vue 中生命周期的相关知 ...
- vue 安装 less_解决旧Vue项目升级less-loader 6.0.0报错
作为一个爱折腾的主,我的package随时都是ncu -u! 何为ncu,就是检查nodejs npm/yarn项目依赖最新版本package.json一个插件! 这不,前几天less-loader ...
最新文章
- C++:map用法示例
- 拼接字符串时去掉最后一个多余逗号
- iOS程序启动画面的制作
- linux下安装jdk+tomcat+eclipse+mysql
- layui移动端适配_实战:移动端适配的最佳实践
- 安卓安卓移动操作系统优缺点
- keepalived脑裂问题查找
- sass使用相关报错
- 餐饮小票打印app_POS收银工业平板电脑在餐饮行业的应用
- 【codevs1246】丑数,STL与取模大质数的好处
- Arduino IDE和ArduBlock 的下载安装
- yagmail和keyring的安装与注册
- html 漂浮 广告置顶,jquery浮动图片广告代码_页面上漂浮图片广告代码
- pr 增加配置文件和级别_用premiere处理视频黑边,出现“该级别的帧大小/帧速率无效……”怎样解决?...
- pencil导出html,用Apple Pencil做笔记:要的就是这个感觉!
- 车载网络: CAN (Control Area Network) 控制器局域网络
- Canvas 绘制直线
- apple iOS订阅开发-服务端
- 基于SSM框架的OA办公系统
- 你竟然写出这样的代码