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文库

相关推荐
敲代码的 蜡笔小新11 小时前
【行为型之命令模式】游戏开发实战——Unity可撤销系统与高级输入管理的架构秘钥
unity·设计模式·架构·命令模式
驰愿20 小时前
ET EntityRef EntityWeakRef 类分析
unity·et
敲代码的 蜡笔小新1 天前
【行为型之中介者模式】游戏开发实战——Unity复杂系统协调与通信架构的核心秘诀
unity·设计模式·c#·中介者模式
敲代码的 蜡笔小新1 天前
【行为型之解释器模式】游戏开发实战——Unity动态公式解析与脚本系统的架构奥秘
unity·设计模式·游戏引擎·解释器模式
敲代码的 蜡笔小新1 天前
【行为型之观察者模式】游戏开发实战——Unity事件驱动架构的核心实现策略
观察者模式·unity·设计模式·c#
向宇it1 天前
【unity游戏开发——编辑器扩展】使用EditorGUI的EditorGUILayout绘制工具类在自定义编辑器窗口绘制各种UI控件
开发语言·ui·unity·c#·编辑器·游戏引擎
qq_205279052 天前
unity 鼠标更换指定图标
unity·游戏引擎
FAREWELL000752 天前
Unity基础学习(九)输入系统全解析:鼠标、键盘与轴控制
学习·unity·c#·游戏引擎
敲代码的 蜡笔小新2 天前
【行为型之策略模式】游戏开发实战——Unity灵活算法架构的核心实现策略
unity·设计模式·c#·策略模式
Flamesky3 天前
Unity编辑器重新编译代码
unity·重新编译