【Unity】双摄像机叠加渲染

一、前言

之前我在做我的一个Unity项目的时候,需要绘制场景网格的功能,于是就用到了UnityEngine.GL这个图形库来绘制,然后我发现绘制的网格线是渲染在UI之后的,也就是说绘制出来的图形会遮盖在UI上面,也就导致一旦这些网格线密集之后,UI就看不清楚了。

前些天成功问到了自己身边的Unity老师,告诉我可以用双摄像机渲染来解决,也就是一个摄像机负责渲染UI,另一个摄像机负责渲染场景。经过十几分钟的调试,总算是成功解决了这个之前遗留的问题。

这里我把我这个双摄像机叠加渲染的参数方案提供给大家,希望会对一些朋友有所帮助。

二、实现步骤

1.在已有MainCamera的情况下,创建一个新的Camera

2.修改两个Camera的Culling Mask选项。UICamera选择只渲染UI层,MainCamera去除渲染UI层

3.调整两个Camera的Depth(深度)值。深度值越大,越渲染在后面 。因此UICamera的Depth值是要比MainCamera的Depth值要大的。比如MainCamera的Depth设置为1,UICamera的Depth设置为2

4.修改Camera的Clear Flags选项。UICamera选择Depth Only , MainCamera选择Skybox

5.选中Hierarchy窗口中的Canvas对象,在其Inspector窗口中,将Render Camera选择为UICamera(因为Canvas里面是用来放UI对象的,因此需要选择的相机就是专门渲染UI的相机

6.将两个相机的Target Display属性都设置为同一个Display,这样就可以实现叠加渲染了。

相关推荐
奔跑的犀牛先生1 小时前
unity学习26:用Input接口去监测: 鼠标,键盘,虚拟轴,虚拟按键
unity
来恩10038 小时前
C# 类与对象详解
开发语言·c#
Dr.勿忘11 小时前
C#面试常考随笔8:using关键字有哪些用法?
开发语言·unity·面试·c#·游戏引擎
xcLeigh11 小时前
WPF进阶 | WPF 数据绑定进阶:绑定模式、转换器与验证
c#·wpf
谢大旭12 小时前
ASP.NET Core 中间件
后端·中间件·c#
存储服务专家StorageExpert12 小时前
答疑解惑:如何监控EMC unity存储系统磁盘重构rebuild进度
运维·unity·存储维护·emc存储
时光追逐者12 小时前
Visual Studio使用GitHub Copilot提高.NET开发工作效率
c#·github·.net·copilot·ai编程·微软技术·visual studio
Petrichorzncu14 小时前
Games104——游戏引擎Gameplay玩法系统:基础AI
游戏引擎
唐青枫14 小时前
dotnet LINQ 使用简明教程
c#·.net
谢大旭15 小时前
.Net Web API 访问权限限定
开发语言·c#