Unity 修改画面渲染顺序的几种实现方案

这篇具有很好参考价值的文章主要介绍了Unity 修改画面渲染顺序的几种实现方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先看下Unity的渲染层级关系以及提供的各种默认渲染队列,然后再去看具体实现方案。

先按大项条件排序,后按小项条件排序

1.Camera Depth: 越小越优先

2.RenderQueue 2500以下  

        1. Sorting Layer/Order in Layer          

                1. 按照Sorting Layer/Order in Layer 设置的值,越小越优先          

                2. 无此属性,等同于 Sorting Layer=default ,Order in Layer=0 参与排序             2.RenderQueue 越小越优先    

         3.RenderQueue 相等,由近到远排序优先

3.RenderQueue 2500以上    

        1. Sorting Layer/Order in Layer          

                1. 按照Sorting Layer/Order in Layer 设置的值,越小越优先          

                 2. 无此属性,等同于 Sorting Layer=default ,Order in Layer=0 参与排序             2.RenderQueue 越小越优先     3.RenderQueue 相等,

unity 更改ui渲染顺序,unity,游戏引擎

实现方案举例:

1.添加Overlay模式相机,添加layer层级,设置对应相机要渲染的模型层级;修改相机Depth(也就是在Base Camera中的顺序)

unity 更改ui渲染顺序,unity,游戏引擎

2.对应SpriteRender或Canvas下的UI等,修改Sorting Layer及Order in layer的值,越大越后渲染,即显示在前面。

unity 更改ui渲染顺序,unity,游戏引擎

 

3.对于3D物体,保证其材质Shader的Surface Type模式为Transparent,然后修改Render Queue(或Lit中的Priority),值越大的越后渲染,也就是会在画面最前面。

unity 更改ui渲染顺序,unity,游戏引擎

 4.对于3D物体,保证其材质Shader的Surface Type模式为Transparent,且渲染队列值一致时,也可通过添加Sorting Group组件,设置其Sorting Layer。

unity 更改ui渲染顺序,unity,游戏引擎

5.对于非Transparent模式的3D模型(Opaque),修改以上不会生效,需要额外修改遮挡关系及深度数据等,具体实现后续再补充吧...文章来源地址https://www.toymoban.com/news/detail-563081.html

到了这里,关于Unity 修改画面渲染顺序的几种实现方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity 渲染顺序

    Unity中的渲染顺序自上而下大致分为三层 渲染优先级 Camera depth Sorting Layer Order in Layer RenderQueue Camera depth:越小越先渲染(大的显示在小的前面) 如图:尽管Sphere距离摄像机较远,但由于Camera_Sphere depth大于Camera_Cube,所以最后Sphere显示在Cube的前面。 Sorting Layer/Order in Layer:越小越

    2024年02月13日
    浏览(43)
  • mysql怎么修改密码,mysql修改密码的几种方法

    第一步 我们打开 mysql console, 输入 mysql 原先密码,按回车键进去,这里原密码为空,如下图所示: 第二步 输入 “set password =password(\\\'123456\\\');” ,按回车键之后,就成功将密码改为 123456 了,如果想修改密码为其他,直接将 123456 改成想要设置的密码就可以,如下图所示: 第三

    2024年02月05日
    浏览(49)
  • ubuntu修改环境变量的几种方法

    有多种方法可以修改Ubuntu系统的环境变量,包括: 临时修改环境变量:在终端中使用export命令可以临时修改环境变量。例如,要将PATH环境变量添加到新目录,可以运行以下命令: 这将在当前终端会话中添加新目录到PATH环境变量中。但是,当关闭终端时,这些更改将被删除。

    2024年02月16日
    浏览(42)
  • 前端大屏常用的几种适配方案

    方 案 实现方式 优点 缺点 vm vh 1.按照设计稿的尺寸,将px按比例计算转为vw和vh 1.可以动态计算图表的宽高,字体等,灵活性较高 2.当屏幕比例跟 ui 稿不一致时,不会出现两边留白情况 1.每个图表都需要单独做字体、间距、位移的适配,比较麻烦 scale 1.通过 scale 属性,根据屏

    2024年02月02日
    浏览(46)
  • MySQL同步ES的几种方案

    MySQL数据同步ES的几种方案 1. 同步双写         与业务耦合深,且业务响应时间长 2. 异步双写         这时可以使用类似MQ这样的中间件,业务主写时向MQ发送一条信息,再由一个聚合服务区消费,最终同步到ES 3. 定时任务         不好配置时间,频率高会出现明显的

    2024年01月20日
    浏览(37)
  • Unity解析JSON的几种方式

    1.使用JsonUtility(Unity自带)解析数据 踩坑 2.使用Newtonsoft.Json dll解析json 链接: link 3.使用LitJson解析数据 4.传递给前端或后端 json

    2024年02月16日
    浏览(51)
  • Unity读取Json的几种方法

    目录 存入和读取JSON工具 读取本地Json文件 1、unity自带方法 类名:JsonUtility          序列化:ToJson()                    反序列化:FromJson()         用于接收的JSON实体类需要声明 [Serializable]  序列化 实体类中的成员变量要是字段而不是属性{get;set;} 处理数组的话,外

    2024年01月21日
    浏览(40)
  • Unity——延时执行的几种方法

    延时执行的函数,可以自己设定延时要执行的函数和具体延时的时间,是Monobehaviour基类中实现好的方法 在Update等刷新函数内计时,timer += Time.deltaTime 当时间达到预期,执行需要延时的方法。需要注意的是,增量时间Time.deltaTime是每帧都不同的浮点数。计时器不能用 == 去判断

    2024年02月11日
    浏览(37)
  • Unity——数据存储的几种方式

    PlayerPrefs适合用于 存储简单的键值对数据 存储的数据会在游戏关闭后依然保持,并且可以在不同场景之间共享,适合用于需要在游戏不同场景之间传递和保持的数据。 它利用key-value的方式将数据保存到本地,跟字典类似。然后通过代码进行保存、读取、更新操作。值得注意

    2024年02月03日
    浏览(44)
  • Unity物体移动的几种方式

    主要是Vector3的内置函数以及CharacterController的Move 还有一个固定的每帧进行移动的操作

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包