정렬 그룹은 스프라이트 렌더러의 렌더링 순서를 변경하는 컴포넌트입니다. 공통 루트를 공유하는 렌더러 그룹을 함께 정렬할 수 있게 해줍니다. Unity의 렌더러는 레이어에서의 순서나 카메라와의 거리와 같은 여러 조건으로 정렬됩니다.
Sorting Group 컴포넌트를 사용하려면 게임 오브젝트의 루트(정렬 그룹을 적용하려는 모든 게임 오브젝트의 부모 게임 오브젝트)에 추가합니다. 게임 오브젝트의 루트를 선택하고 메인 메뉴에서 Component > Rendering > Sorting Group 을 선택합니다.
정렬 그룹은 씬 뷰에서 시각적 표시가 없습니다. 빈 게임 오브젝트에 추가하면 그룹 정렬을 한 번에 적용해야 하는 게임 오브젝트가 많을 때 유용할 수 있습니다.
정렬 그룹은 다른 렌더러에 종속되지 않고, 해당 게임 오브젝트와 하위에 연결된 렌더러는 함께 렌더링됩니다.
프로퍼티 | 기능 |
---|---|
Sorting Layer | 드롭다운 메뉴를 사용해 렌더링 시 스프라이트의 오버레이 우선 순위를 정의하는 데 사용된 레이어를 선택합니다. |
Order in Layer | 레이에서 이 스프라이트의 오버레이 우선 순위를 설정합니다. 낮은 숫자가 먼저 렌더링되며 다음 숫자가 그 아래 오버레이됩니다. |
Unity는 레이어 정렬과 같은 개념을 사용해 오버레이 우선 순위로 나눠진 그룹으로 스프라이트를 분리합니다. 낮은 순위의 Sorting Layer 에 속한 정렬 그룹은 높은 순위의 Sorting Layer 에 의해 겹쳐집니다.
종종 같은 Sorting Layer 에 있는 두 개 이상의 오브젝트가 오버랩될 수 있습니다(예를 들어, 횡스크롤 게임에서 두 플레이어 캐릭터, 아래 예제 참조). Order in Layer 프로퍼티로 동일 레이어의 정렬 그룹들이 일관된 우선 순위를 갖도록 할 수 있습니다. Sorting Layer 와 동일하게 낮은 숫자가 먼저 렌더링되고 나중에 렌더링되는 높은 레이어 숫자의 정렬 그룹들에 의해 가려집니다. Sorting Layers 편집에 대한 자세한 내용은 태그 및 레이어 문서를 참조하십시오.
정렬 그룹의 하위는 거리 또는 Order in Layer 에 의한 정렬인지에 따라 인접이나 다음 정렬 그룹의 하위와 정렬됩니다. 다시 말해, 정렬 그룹은 하위만을 위한 로컬 정렬 공간을 생성합니다. 이렇게 해서 그룹의 각 렌더러는 Sorting Layer 및 Order in Layer 를 사용해 정렬할 수 있지만 정렬 그룹에 로컬로 포함됩니다.
중첩된 정렬 그룹은 같은 그룹의 다른 렌더러들과 함께 정렬됩니다.
그러나 계층 구조에 정렬 그룹이 없는 게임 오브젝트는 단일 레이어로 함께 렌더링되며 렌더러는 계속해서 Sorting Layer 와 Order in Layer 를 기반으로 정렬됩니다.
정렬 그룹 사용 방법 예제
정렬 그룹은 캐릭터가 복잡하게 여러 스프라이트로 이뤄진 2D 게임에 일반적으로 사용됩니다. 이 예제에서는 계층에서 여러 렌더러를 사용한 2D 캐릭터를 사용합니다.
이 캐릭터는 하나의 정렬 레이어로 여러 Order in Layers 를 사용해 신체 부위를 정렬합니다. Unity는 캐릭터를 프리팹으로 저장하고, 게임플레이 중 여러 번 복제합니다.
아래에서 보듯이 복제를 하면 신체 부위가 같은 레이어에 있기 때문에 오버랩됩니다.
이상적인 결과는 한 캐릭터의 모든 렌더러가 같이 렌더링되고 다음 캐릭터를 렌더링하는 것입니다. 이는 두 캐릭터가 서로 섞여 나타나는 대신 한 캐릭터가 다른 캐릭터보다 카메라에 더 가깝게 나타나 서로 지나가는 것처럼 보이는 시각적 이펙트를 줍니다.
캐릭터의 루트에 추가된 Sorting Group 컴포넌트는 신체 부위가 오버랩되거나 섞이지 않게 해줍니다.