Unity 2D Sprite 渲染排序

渲染排序优先级

Sorting Group(排序组) -> Sorting Layer(排序图层) -> Order in Layer(图层中的顺序) -> Distance to Camera(与摄像机的距离)

Sorting Layer(排序图层)

按照 Layer 索引,从小到大的顺序渲染。

Order in Layer(图层中的顺序)

按照 Order 大小,从小到大的顺序渲染。

Distance to Camera(与摄像机的距离)

根据 Project Settings -> Graphics -> CameraSettings 中的设置规则排序。

  1. 如果设置为:Transparency Sort Mode: Default, Transparency Sort Axis: 0, 0, 1,择按照 Sprite 的 Sort Point 的 z 值从大到小的排序渲染。(这是默认设置)
  2. 如果设置为:Transparency Sort Mode: Custom Axis, Transparency Sort Axis: 0, 1, 0,择按照 Sprite 的 Sort Point 的 y 值从大到小的顺序渲染。(这是 2.5D 游戏的常见功能)

Sort Point(排序点)

Distance to Camera 的测量位置是 Sprite 的 Sort Point,Sort Point 可以选择为 Center 或 Pivot 。

Sorting Group(排序组)

注意:在此排序过程中,Unity 不会再考虑其子节点每个渲染器的 Distance to Camera(与摄像机的距离) 属性。

本文参考:
https://docs.unity3d.com/cn/2019.4/Manual/2DSorting.html
https://docs.unity3d.com/cn/2019.4/Manual/class-SortingGroup.html
https://docs.unity3d.com/cn/2019.4/ScriptReference/TransparencySortMode.CustomAxis.html