Unity笔记--渲染顺序

Unity中的渲染顺序

Unity中的渲染顺序自上而下大致分为三层。
来自 https://zhuanlan.zhihu.com/p/397558635

一、Camera层

在Camera的depth那里设置,设置之后,图形的渲染顺序就是先绘制depth低的相机下的物体,再绘制depth高的相机下的物体,也就是说,depth高的相机会覆盖depth低的相机(具体的覆盖关系有don’t clear, solid color等等几种)

二、透明类型(先渲染不透明)

RenderQueue<=2500,Opaque队列,通常是不透明物体,通常开启了ZWrite
RenderQueue>2500,Transparent队列,通常是透明物体,通常关闭了ZWrite
同一个摄像机下,Unity会先渲染Opaque队列中的不透明物体,然后渲染Transparent队列中的透明物体。
来自 https://www.jianshu.com/p/663d45e230e3

三、物体的SortingLayer(越小越先渲染)

根据 Project Setting - Tags & Layers 中的顺序,越靠上的 SortingLayer 越先渲染,即显示在下面。

四、sorting order(越小越先渲染)

这个数字指代的是在同一个sorting layer下的渲染顺序。

五、RenderQueue (越小越优先)

六、距离相机z值

1、<=2500 不透明:由近到远排序优先
2、>2500 透明:由远到近排序优先

七、UGUI的RenderQueue通常为3000,都相同的情况下,根据元素在 Hierarchy 视图中的顺序

来自 https://www.jianshu.com/p/663d45e230e3

SortingLayers和Layers的区别

在这里插入图片描述
Layer:层级。用于物体的逻辑分层。
在物理相关的射线检测等时,可以指定忽略/只关注某些层级的物体。
相机可以设置只渲染特定层级的物体
SoringLayer:排序层级。影响物体渲染的顺序,
SoringLayer 和 OrderInLayer 处理相机的渲染,前后关系。

来自 https://blog.csdn.net/qq_52719788/article/details/121548738

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity VR项目中,当使用射线选取UI元素时,有可能会遇到UI渲染遮挡射线的问题。这是因为UI元素在屏幕上是以2D的形式渲染出来的,而射线则是在3D空间中运行的。如果在游戏场景中存在3D物体遮挡了UI元素,射线就无法直接命中UI元素。 解决这个问题的方法可以是使用EventSystem的IsPointerOverGameObject函数来判断射线是否碰撞到了UI元素。首先,需要在场景中添加一个EventSystem对象,并将UI元素添加到Canvas组件下。然后,在射线的碰撞检测中,使用IsPointerOverGameObject函数来判断是否碰撞到了UI元素。如果返回值为true,即表示射线碰撞到了UI元素,可以进行相应的处理。 另一种解决方法是使用Graphics.Raycast方法来进行射线的检测。该方法可以检测射线是否与UI元素重叠,并返回碰撞信息。根据返回的碰撞信息,可以判断射线是否与UI元素相交,并进行相应的处理。 需要注意的是,为了确保射线的精确性,可以在射线的检测中使用layerMask来限制只进行UI元素的检测,避免与其他3D物体碰撞检测产生冲突。同时,还可以调整UI元素的渲染顺序或调整UI元素的位置,以确保射线能够正确地命中UI元素。 总而言之,解决Unity VR项目中UI渲染遮挡射线的问题可以通过使用EventSystem的IsPointerOverGameObject函数或Graphics.Raycast方法来判断射线是否与UI元素碰撞,并进行相应的处理和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值