Unity 多相机 同屏显示

一 首先了解: 相机和Canvas 的渲染先后关系

什么是相机的渲染顺序

答:简单理解就是 用毛刷 刷墙面,先刷的,会被后刷的 挡住 。

列如:相机01: 先渲染的大海,相机02:后渲染的比基尼美女。那么呈现的效果就是:比基尼美女站在大海前面。

毛刷理解方式:一面空白的墙,先刷了大海图案,然后在大海层次上刷上了美女图案。

影响渲染顺序的因素:( (17条消息) Unity渲染顺序相关学习_unity camera stack_昵称好难写的博客-CSDN博客)

渲染优先级 Camera depth > Sorting Layer > Order in Layer > RenderQueue

需要注意的是 RenderQueue 2500是关键值,他是透明与不透明的分界点

1、camera(depth越小,越先渲染)

2、sorting layer(值越小,越先渲染)(下面还有个sortingOrder 值越小,越先渲染)

3、渲染队列renderQueue(值越小,越先渲染)

4、深度值(距离相机越近该值越小,越远该值越大。)

但是具体覆盖方式是也会根据像机的clearFlags来决定的(如下图)

二 .了解 Canvas渲染顺序( (18条消息) 浅谈Unity中的Canvas及三种渲染模式_unity canvas__橙子先生的博客-CSDN博客)

1.Screen Space - Overlay 模式

Canvas 覆盖屏幕,且永远覆盖在其它元素的上层,也就是说 UI 会遮挡场景中的其它元素。

当 RenderMode 为 Screen Space - Overlay时,Canvas的其它参数包括:

Pixel Perfect:UI元素精确到像素对齐,边缘更清晰,但是在UI调整和适配时会有更大的计算量(个人理解)

Sort Order:Canvas 的深度。多个 存在多个Canvas时,Sort Order 值更大的Canvas会遮盖住 Sort

Order 值小的 Canvas

注:多个 Canvas 深度取值相等时,Hierarchy 视图中后面的 Canvas 显示在下,这一点与 UI

元素(如Image的规则相反)
2.Screen Space - Camera 模式

和 Overlay 模式相仿,Canvas覆盖整个屏幕空间画布也是填满整个屏幕空间。不同之处在于,Canvas 被放置于指定摄像机的前方。

Pixel Perfect :同 Overlay 模式含义

Render Camera :指定的用来渲染 Canvas 的摄像机

Plane Distance:Canvas 平面距离摄像机的距离

Sorting Layer:指示 Canvas 的深度,可以手动添加。当存在多个模式为 Screen Space 的 Canvas

时,Sorting Layer 决定了显示的优先级。

Order in Layer:多个 Canvas 具有相同的 Sorting Layer 时,根据 Order in Layer

来确定显示优先级。
3.World Space 模式

此种模式下,Canvas 与场景中其它3D元素没有区别

  • Canvas 可以调整 RectTransform 的数值
  • 摄像机的平移旋转缩放及fov都会影响 Canvas 的显示
  • 需要 EventCamera 来指定接受事件的摄像机

不同模式的 Canvas之间,Screen Space - Overlay 的 Canvas 永远显示在最前面,Screen Space

-Camera 和 World 的显示关系决定于 World Canvas 距离摄像机的位置以及 Screen Space - Camera Canvas 的 Plane Distance

相同的 Screen Space - Overlay Canvas :显示优先级由 Sort Order 确定

相同的 Screen Space - Camera:显示优先级由 Sorting Layer 和 Order in Layer 确定

三.了解完进入正题:多相机 同屏显示

1.首先创建一个新场景,创建两个UI代表UI界面

2.创建Cube和Sphere,两个相机,在Assets下Render Texture,再在Canvas下创建两个RawImage。

3.把Render Texture 分别赋值在RawImage01和Camera01,另一个同理。

得到效果如下:

  1. 接下来我们让两个相机分别出现:Cube(Camera01渲染),Sphere(Camera02渲染)

将模型放在各自相机 前面即可

效果:

Dome地址:(26条消息) Unity多相机同屏显示.zip资源-CSDN文库

相关推荐
dangoxiba5 小时前
【Unity学习心得】如何使用Unity制作“饥荒”风格的俯视角2.5D游戏
游戏·unity·c#·游戏引擎
cyr___7 小时前
Unity教程(十六)敌人攻击状态的实现
学习·游戏·unity·游戏引擎
优梦创客15 小时前
《黑神话悟空》开发框架与战斗系统解析
unity·游戏开发·黑神话悟空·战斗系统·解包
仙魁XAN20 小时前
Unity 设计模式 之 创造型模式-【工厂方法模式】【抽象工厂模式】
unity·设计模式·工厂方法模式·抽象工厂模式
躺下睡觉~1 天前
Unity-Transform类-父子关系
java·unity·游戏引擎
躺下睡觉~1 天前
Unity-Transform类-缩放和看向
unity·游戏引擎
君莫愁。1 天前
【Unity】检测鼠标点击位置是否有2D对象
unity·c#·游戏引擎
咩咩觉主1 天前
Unity实战案例全解析:PVZ 植物卡片状态分析
unity·c#·游戏引擎
蓝裕安2 天前
伪工厂模式制造敌人
开发语言·unity·游戏引擎
谢泽浩2 天前
Unity 给模型贴上照片
unity·游戏引擎