Unity3D Canvas 的三种渲染模式 Screen Space - overlay, Screen Space - camera, World Space

17 篇文章 2 订阅
7 篇文章 1 订阅

Canvas 有三种渲染模式(render mode): Screen Space - overlay(覆盖), Screen Space - camera(相机), World Space(世界)

  • Screen Space - overlay

覆盖模式,这种模式,一般用的比较多,它始终位于3D场景的最前面,会挡住3D场景中的物体(如果对应位置有UI)。在通常的渲染管线中,一般都是先画场景中的物体,最后画UI,所以这种模式下的UI会挡住3D场景中渲染出来的画面。

在这里插入图片描述

  • Screen Space - camera

相机模式,这种模式,需要搭配一个相机一起使用(假定该相机名字是 UICamera),该UI位于UICamera前方,与相机的距离可以通过Inspector面板上的Plane Distance设定,这个模式下的UI会受到UICamera设置的影响,比如UICamera设置的模式为透视模式(Perspective),那么渲染出的UI也会有远小近大的效果。

在这里插入图片描述

  • World Space

世界空间,这种模式比较好理解,可以直接把对应的UI对象当作一个3D对象,会被位置在它前面的其他3D物体挡住,也会挡住位置在它后面的3D物体。

在这里插入图片描述


Screen Space - overlay和Screen Space - camera渲染先后顺序:

结论:Screen Space - camera是属于在场景内渲染的结构,它的渲染顺序在常规的3D物体之后,但是在Screen Space - overlay的Canvas的渲染之前,验证的方式如下,第一幅图为UI的结构,有两个canvas,一个的render mode是Screen Space - overlay, 另外一个的render mode是Screen Space - camera。

canvas1 , render mode 是 Screen Space - camera

在这里插入图片描述

canvas2 , render mode 是 Screen Space -overlay

然后是frame debuger 的分析截图

在这里插入图片描述

frame debuger 的分析截图

所以验证得出Screen Space - camera模式的UI渲染时间是在 Screen Space - overlay模式的UI之前的,所以Screen Space - overlay模式的UI不仅仅会覆盖场景内的3D物体,也会挡住Screen Space - camera模式的UI(如果有重叠)。当然我们用同样的方式,也能测出World Space的UI的渲染顺序,这里简单说下结论,包含3D场景、Screen Space - overlay、Screen Space - camera、World Space的渲染顺序依次是:3D场景 -> World Space -> Screen Space - camera -> Screen Space - overlay, 截图如下:


在这里插入图片描述


以上是所有关于Unity3D Canvas的三种渲染模式的介绍,随手点赞,手有余香

  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值