你打开 Unity,往场景里一顿猛拉:
- 地板、墙、树、石头
- 主角、怪物、NPC
- 粒子特效、雾、UI、血条……
按理说,这么多东西,GPU 要是“随缘画”,早就乱成一锅粥:
- 有的本该挡住别人,结果被画在后面
- 透明玻璃盖不住后面的景
- UI 时有时无
- 再加上性能雪崩:切换材质、切换 Shader,忙得像在搬砖
但你实际看到的画面却是规规矩矩的:
- 地板在最下面
- 人站在地上
- 玻璃半透明地叠在后面的景上
- UI 永远“贴”在最上层
- 性能还能勉强跑得动
这背后靠的就是今天要聊的主角:
Unity 渲染管线里的排序 & 分组
——决定“谁先上场,谁后上场”的那套规则。
这篇我们用大白话,把这部分拆开讲清楚:
- Unity 画一帧时,为什么要排序?
- 不透明和透明物体的排序逻辑有何不同?
- Render Queue、Sorting Layer、Order in Layer、Sorting Group 是干嘛的?
- Unity 为啥要“分组”,它在帮你省什么性能?
- 常见“Z-fighting、透明乱序、UI 遮挡”的坑,和排序有啥关系?
看完,你脑子里应该能有这样一