当前位置: 首页 > news >正文

【Unity基础】Unity中元素的层级排序

在这里插入图片描述

在Unity中,控制元素的层级排序(渲染顺序)是确保场景正确显示的关键。以下是常见的层级排序方式及其适用场景:


1. 通过GameObject的层级顺序(Sorting Layer/Order in Layer)

适用对象:2D精灵(SpriteRenderer)、UI元素(Canvas)、粒子系统等。

  • Sorting Layer
    Tags and Layers设置中创建自定义层级(如"Background", “Characters”, “UI”),将对象分配到不同层级。高层级永远显示在低层级之上
  • Order in Layer
    同一Sorting Layer内的对象通过此数值排序,数值越大越靠前
// 代码示例(SpriteRenderer)
GetComponent<SpriteRenderer>().sortingLayerName = "Characters";
GetComponent<SpriteRenderer>().sortingOrder = 10;

2. 通过Z轴坐标(3D场景)

适用对象:3D物体。
Unity默认根据摄像机视角的Z轴距离排序(透视投影时),或直接按Z轴值(正交投影时)。

  • 正方向:Z值越大离摄像机越远(可能被遮挡)。
  • 负方向:Z值越小离摄像机越远(取决于坐标系)。

3. UI元素的层级控制(Canvas)

适用对象:UGUI系统。

  • Canvas层级
    • Screen Space模式:通过Canvas的Sort Order属性控制画布层级,数值高的覆盖低的。
    • World Space模式:结合Sorting Layer和Order in Layer。
  • UI子物体顺序
    同一Canvas下,Hierarchy面板中的顺序决定渲染顺序(下方的物体后渲染,显示在上层)。
// 动态调整UI顺序
transform.SetAsLastSibling(); // 置顶
transform.SetSiblingIndex(1); // 指定位置

4. 渲染队列(Shader中的Queue)

适用对象:自定义Shader或材质,控制透明/不透明物体的渲染顺序。

  • 内置队列
    • Background (1000)
    • Geometry (2000, 默认)
    • AlphaTest (2450)
    • Transparent (3000, 从后到前渲染)
    • Overlay (4000)
  • 自定义队列
    在Shader中声明 Queue 值(如Queue = Geometry+100)。
// Shader示例
SubShader {Tags { "Queue" = "Transparent" }// ...
}

5. 摄像机深度(Camera Depth)

适用对象:多摄像机场景。

  • 在Camera设置中调整Depth值,数值高的摄像机后渲染,覆盖之前的画面。
  • 结合Clear Flags控制清除规则(如仅渲染UI的摄像机设为Depth Only)。

6. 粒子系统排序

适用对象:Particle System。

  • 通过Renderer模块设置Sorting LayerOrder in Layer
  • 可选Sort Mode(如按距离、深度等)。

7. 自定义排序(脚本控制)

适用场景:动态调整渲染顺序(如角色移动时改变层级)。

// 动态修改Sorting Order
void Update() {if (isMoving) {GetComponent<Renderer>().sortingOrder = 20;}
}

选择建议

  • 2D游戏:优先使用Sorting Layer + Order in Layer
  • UI系统:利用Canvas层级和Hierarchy顺序。
  • 3D场景:调整Z轴或Shader队列(透明物体用Transparent队列)。
  • 复杂场景:结合多种方式(如多摄像机+分层渲染)。

通过灵活组合这些方法,可以精准控制Unity中元素的显示层级。


文章转载自:
http://chassis.kjawz.cn
http://actuator.kjawz.cn
http://bracing.kjawz.cn
http://benthon.kjawz.cn
http://asparaginase.kjawz.cn
http://advertiser.kjawz.cn
http://animato.kjawz.cn
http://bubblehead.kjawz.cn
http://ceti.kjawz.cn
http://autotransfusion.kjawz.cn
http://choreographic.kjawz.cn
http://bec.kjawz.cn
http://capacitivity.kjawz.cn
http://baaskaap.kjawz.cn
http://calcium.kjawz.cn
http://asclepiadaceous.kjawz.cn
http://betsy.kjawz.cn
http://areometry.kjawz.cn
http://bollox.kjawz.cn
http://avow.kjawz.cn
http://batterie.kjawz.cn
http://christiana.kjawz.cn
http://cascade.kjawz.cn
http://bequest.kjawz.cn
http://ahmadabad.kjawz.cn
http://cadelle.kjawz.cn
http://bioplasma.kjawz.cn
http://bombload.kjawz.cn
http://bleach.kjawz.cn
http://boshbok.kjawz.cn
http://www.dtcms.com/a/281350.html

相关文章:

  • WPF,Winform,HTML5网页,哪个UI开发速度最快?
  • 线程(一) linux
  • 前端医疗生命体征
  • MIPI DSI(四) video 和 command 模式
  • 比较vue和react框架
  • Windows 下 Visual Studio 开发 C++ 项目的部署流程
  • Spring Boot 启动原理揭秘:从 main 方法到自动装配
  • 判断QMetaObject::invokeMethod()里的函数是否调用成功
  • Process Lasso:提升电脑性能的得力助手
  • C++20 协程参考手册详解 - 源自 cppreference.com
  • Expression 类的静态方法
  • PostgreSQL 大数据量(超过50GB)导出方案
  • 国产化Excel处理组件Spire.XLS教程:在 C# 中生成 Excel文件
  • 关于LM74700-Q1低IQ理想二极管的应用与参数极限
  • saltstack安装部署
  • 对象数组列表转成树形结构--树形结构转成列表(处理菜单)
  • ORA-06413: 连接未打开
  • 设计网站集:经济信息数据 统计数据 + 农业 + 金属 + 药品 + 电子 + 加密货币 + 债券 + 期货 + 其他
  • 构建企业级项目管理全面数字化运营体系︱易趋(蓝云软件)总裁唐智勇
  • 东鹏饮料牵手盈飞无限质量管理系统(QMS)
  • 多方学习与安全多方计算
  • 电动汽车制动系统及其工作原理
  • 梁的振动特征函数分析
  • 算法学习笔记(1):组合数
  • 论文 视黄素与细胞修复
  • 可下载或通过爬虫获取疾病相关数据的网站及平台,涵盖临床数据、基因关联、药品信息等方向,并附注数据特点与获取方式:(不公开)
  • PHP安全漏洞深度解析:文件包含与SSRF攻击的攻防实战
  • keeplived双击热备配置
  • chrome浏览器(chrome138.0.0.0 )无法安装扩展程序,因为它使用了不受支持的清单版本解决方案
  • GAMES101 lec2-数学基础1(线性代数)