Version: 2023.1
언어: 한국어
스프라이트 에디터 데이터 공급자 API
9슬라이싱 스프라이트

정렬 그룹

Sorting GroupSprite Renderers와 함께 게임 오브젝트를 그룹화하고 스프라이트를 렌더링하는 순서를 제어할 수 있습니다.Unity는 동일한 정렬 그룹에 있는 스프라이트 렌더러를 마치 하나의 게임 오브젝트인 것처럼 함께 렌더링합니다.

정렬 그룹 설정

게임 오브젝트를 정렬 그룹에 배치하려면 Sorting Group 컴포넌트를 추가합니다.이렇게 하려면 해당 게임 오브젝트를 선택하고 Component > Rendering > Sorting Group으로 이동하거나 해당 게임 오브젝트의 인스펙터 창에서 Add Component 버튼을 선택합니다.

게임 오브젝트에 Sorting Group 컴포넌트를 추가하면 Unity는 컴포넌트가 연결된 게임 오브젝트의 모든 자식 게임 오브젝트에 동일한 정렬 그룹을 적용합니다.


‘스프라이트’ 자식 오브젝트는 빈 부모 게임 오브젝트의 Sorting Group에 속합니다.

Unity는 정렬 그룹의 설정을 사용하여 씬의 다른 렌더러 및 정렬 그룹 간에 렌더러를 정렬하는 방법을 결정합니다. 자세한 내용은 2D 정렬을 참조하십시오.

정렬 그룹 내에서 렌더러를 정렬하기 위해 Unity는 렌더러의 개별 정렬 설정을 정렬 그룹에 사용합니다. 자세한 내용은 정렬 그룹 내에서 렌더러 정렬을 참조하십시오.

Sorting Group 프로퍼티

Unity는 Sorting GroupSorting LayerOrder in Layer 값을 사용하여 씬의 다른 정렬 그룹 및 게임 오브젝트 중에서 렌더링 대기열의 우선순위를 결정합니다.

Sorting Group 컴포넌트
Sorting Group 컴포넌트
프로퍼티 기능
Sorting Layer 이 드롭다운 메뉴에서 정렬 레이어를 선택하거나 추가하여 렌더 대기열 내 정렬 그룹의 포지션을 결정합니다. Unity는 정렬 레이어 설정 내 해당 위치를 기준으로 정렬 레이어 순서를 결정하고, 리스트에 표시되는 순서로 정렬 레이어를 렌더링합니다. 정렬 레이어 설정에 대한 자세한 내용은 태그 및 레이어를 참조하십시오.
Order in Layer 해당 Sorting Layer 내에서 이 정렬 그룹의 렌더링 순서를 설정합니다.Unity는 값이 낮은 렌더러를 렌더링 대기열에 먼저 대기시켜 값이 높은 렌더러보다 먼저 표시합니다.
Sort At Root 이 옵션을 활성화하면 이 정렬 그룹이 중첩된 경우 모든 부모 정렬 그룹이 무시됩니다.이렇게 하면 이 정렬 그룹을 루트 수준에서 다른 렌더러 및 정렬 그룹과 비교하여 정렬할 수 있습니다.

정렬 레이어를 사용하여 스프라이트 정렬과 Unity의 렌더러 정렬 기준에 대한 자세한 내용은 2D 정렬을 참조하십시오.

정렬 그룹 내 렌더러 정렬

Unity는 동일한 정렬 그룹 내의 모든 렌더러를 개별 Sorting LayerOrder in Layer Renderer 프로퍼티에 따라 정렬합니다.Unity는 이 정렬 과정에서 각 렌더러의 개별 Distance to Camera 프로퍼티를 고려하지 않습니다.대신 Sorting Group 컴포넌트가 포함된 루트 게임 오브젝트의 포지션에 따라 전체 정렬 그룹(모든 자식 렌더러 포함)에 대한 카메라까지의 거리 값을 설정합니다.

정렬 그룹의 내부 정렬 순서는 Unity가 다른 렌더러 간의 정렬 그룹과 씬 내 정렬 그룹을 정렬할 때 변하지 않습니다.

다음 다이어그램은 정렬 프로세스를 보여줍니다.

내부 정렬 그룹 정렬 프로세스
내부 정렬 그룹 정렬 프로세스

Unity는 동일한 정렬 그룹에 속한 모든 렌더러를 단일 레이어로 취급하며, 그룹화되지 않은 렌더러는 Sorting LayerOrder in Layer 프로퍼티 설정에 따라 정렬합니다.

파티클 시스템

에디터는 정렬 그룹의 자식인 Particle System을 해당 정렬 그룹 내의 다른 렌더러로 취급하고, Sorting LayerOrder in Layer 프로퍼티 설정에 따라 다른 렌더러 사이에서 내부적으로 정렬합니다.

Unity가 파티클 시스템을 정렬 그룹 내의 다른 렌더러와 함께 정렬할 때 해당 파티클 시스템의 Sorting Fudge 값은 무시됩니다.

중첩된 정렬 그룹

중첩된 정렬 그룹은 부모 정렬 그룹을 포함한 정렬 그룹입니다. Unity는 해당 부모보다 먼저 중첩된 정렬 그룹 내에서 렌더러를 정렬합니다(정렬 그룹 내 정렬 렌더러 참조).

Unity는 중첩된 정렬 그룹의 내부 정렬 순서를 결정한 후 중첩된 정렬 그룹을 부모 정렬 그룹 내 다른 렌더러 또는 정렬 그룹과 함께 정렬합니다. 중첩된 정렬 그룹은 중첩된 정렬 그룹을 자식으로 가질 수 있습니다. Unity는 최하위 자식 그룹을 먼저 정렬한 후 각 부모 그룹을 정렬합니다.

다음 다이어그램은 중첩된 정렬 그룹의 정렬 프로세스의 예를 보여줍니다.

중첩된 정렬 그룹 정렬 프로세스
중첩된 정렬 그룹 정렬 프로세스

루트에서 정렬

특정 상황에서는 씬 계층 구조에 따라 정렬되는 중첩된 정렬 그룹이 있을 수 있습니다.그러나 이 중첩된 정렬 그룹을 씬 계층 구조에서 포지션을 변경하지 않고 부모 정렬 그룹과 별도로 렌더링하고 싶을 수도 있습니다.

이 옵션을 활성화하면 이 정렬 그룹이 부모 정렬 그룹을 무시하도록 허용하여 게임 오브젝트를 다른 트랜스폼에 다시 부모로 지정하지 않고도 이 정렬 그룹을 다른 렌더러 및 정렬 그룹에 대해 전역적으로 정렬할 수 있습니다.모든 자식 렌더러와 정렬 그룹(부모를 무시하지 않은)은 이 정렬 그룹 아래에 정렬됩니다.

정렬 그룹 사용

2D 멀티 스프라이트 캐릭터를 만드는 가장 일반적인 방법은 계층 창에서 여러 스프라이트 렌더러를 함께 정렬하고 부모로 지정하여 캐릭터를 형성하는 것입니다.이러한 복잡한 멀티 스프라이트 캐릭터를 관리하기 위해 Sorting Groups를 사용할 수 있습니다.

아래 예시에서 스프라이트 렌더러는 동일한 Sorting Layer에 속하지만 Order in Layer 값은 다릅니다.Unity는 캐릭터의 다양한 부분을 원하는 순서대로 정렬합니다.

계층 구조에서 파트가 포함된 캐릭터 프리팹.
계층 구조에서 파트가 포함된 캐릭터 프리팹.

정렬 그룹과 정렬 레이어를 설정한 후 캐릭터를 프리팹으로 저장한 후 원하는 만큼 많이 복제할 수 있습니다.

그러나 프리팹 스프라이트는 모두 동일한 Sorting LayerOrder in Layer 값을 가지며, 다른 프리팹과 동일한 레이어에 렌더링되므로 프리팹 캐릭터의 다른 부분이 교차하여 잘못 레이어링될 수 있습니다.

Unity가 동일한 레이어의 스프라이트를 렌더링하므로 두 프리팹의 스프라이트가 잘못 교차합니다.
Unity가 동일한 레이어의 스프라이트를 렌더링하므로 두 프리팹의 스프라이트가 잘못 교차합니다.

프리팹이 렌더링 순서를 일관되게 유지하여 정확하게 표시되도록 만들려면 각 프리팹의 루트 게임 오브젝트에 Sorting Group 컴포넌트를 추가하십시오. 편집된 프리팹을 저장하면, 프리팹의 모든 현재 및 미래 인스턴스도 Sorting Group 컴포넌트를 가집니다.

각 프리팹에는 동일한 Sorting LayerOrder in Layer 프로퍼티 설정을 가진 Sorting Group 컴포넌트가 있어야 합니다.이로 인해 동일한 Sorting Layer에 있는 프리팹의 렌더러가 렌더 대기열에서 동일한 우선순위를 갖기 때문에 일관되지 않은 방식으로 렌더링될 수 있습니다.

이 문제를 방지하려면 각 프리팹의 Sorting Group 컴포넌트에 고유한 Order in Layer 값을 지정하십시오.Unity는 Order in Layer 값이 낮은 정렬 그룹을 먼저 렌더링하고, 값이 높은 정렬 그룹은 낮은 정렬 그룹과 겹치게 렌더링합니다.Sorting Layer의 편집 및 순서 변경에 대한 자세한 내용은 Tags and Layers를 참조하십시오.

각 프리팹에는 각 캐릭터와 캐릭터의 파트를 올바르게 렌더링할 수 있도록 고유한 Order in Layer 값을 가진 Sorting Group 컴포넌트가 있습니다.

SortingGroup

스프라이트 에디터 데이터 공급자 API
9슬라이싱 스프라이트