스프라이트가 그려지는 순서는 우선 정렬 그룹에 따라 그려지며
그후 같은 정렬 그룹에서는 Order in Layer를 통해 이루어진다.
객체의 스프라이트가 단일이라면 이를 제어하는것이 쉽지만 여러개의 스프라이트를 가진다면
이를 전부 제어하는것은 어려울것이며 다른 객체의 일부가 위에서 출력되는 일이 일어날것이다.

서로 다른 정렬 그룹을 지정할 수도 있지만 같은 종류의 객체를 다른 그룹으로 하는것은 지양된다.
그렇기에 Sorting Group를 사용하여 한번에 이를 관리 할 수 있다.


위와 같이 정렬하고자하는 객체의 최상위 오브젝트에 Sorting Group를 추가한다.
이를 통해 하위에 있는 모든 스프라이트는 Sorting Group 옵션에 따라 다음과 같은 효과를 얻는다.
이를 통해 객체의 하위 스프라이트를 모두 한번에 관리할 수 있다.
자세한 흐름도는 다음과 같다.

각각 Sorting Group에 1,2,3으로 Order in Layer를 설정하면 다음과 같은 결과가 나온다.



객체가 좌우로만 움직인다면 Sorting Group로 충분하지만 위 아래로 움직일 경우 Sorting Group로만으로 고정적인 순서를 가진다면 부자연스러울 수 있다.
많은 2D게임에서는 위에서 올려보거나 옆에서 보는 시점을 가진다.
이때 y축 값이 큰 객체는 화면의 위, 즉 플레이어의 시점에서 보면 멀리 있는 것처럼 연출 되고
y축 값이 작은 객체는 화면의 아래, 즉 플레이어와 가까운 거리에 있다.
이러한 효과를 주기 위해 객체의 스프라이트를 정렬하는 방식을 바꿀 수 있다.

BuildIn 2D라면
프로젝트설정 > 그래픽> 카메라 설정에서
Transparency Sort Mode를 Custom Axis로 설정한다.
Transparency Sort Mode를 Custom Axis로 설정한 경우 씬 뷰의 렌더러가 이 축과 카메라의 거리를 기준으로 정렬된다.
축은 –1과 1 사이의 값을 사용하여 정의할 수 있으며 예를 들어 :X=0, Y=1, Z=0이면 축 방향이 위쪽으로 설정된다.
X=1, Y=1, Z=0이면 축이 X와 Y 사이의 대각선 방향으로 설정된디
지금은 0,1,0로 변경한다.
만약 URP를 쓰고 있다면 새로운 URP 에셋을 만들고 똑같이 설정한다.

다음과 같이 위치(Y축 좌표)에 따라 같은 Order in Layer라도 다르게 출력된다.



참고
https://www.youtube.com/watch?v=q-r1YJzj28M&t=374s
https://docs.unity3d.com/kr/2021.1/Manual/class-SortingGroup.html