Unity는 렌더러의 유형과 용도를 기반으로 정해지는 우선순위에 따라 렌더러를 정렬합니다. 렌더 대기열을 사용하면 렌더러의 렌더링 순서를 지정할 수 있습니다. 일반적으로 두 개의 주요 대기열이 있는데, 불투명 대기열과 투명 대기열입니다. 2D 렌더러는 주로 투명 대기열에 속하며, 2D 렌더러 유형으로는 스프라이트 렌더러, 타일맵 렌더러, 스프라이트 셰이프 렌더러가 있습니다.
투명 대기열 내에 있는 2D 렌더러는 대개 아래의 우선 순위를 따릅니다.
정렬 순서가 일반적인 우선 순위와 달라지도록 만드는 다른 요소들도 있으며, 이러한 요소들은 프로젝트에 따라 다릅니다.
레이어 정렬 및 Order in Layer(렌더러의 Property 설정에서)는 인스펙터 창 또는 Unity 스크립팅 API를 통해 모든 2D 렌더러에서 사용할 수 있습니다. 렌더러를 기존의 Sorting Layer로 설정하거나 렌더링 대기열에서 우선 순위를 결정하기 위해 새 레이어를 생성합니다. 같은 Sorting Layer 내 다른 렌더러 중에서 렌더러의 우선 순위를 설정하려면 Order in Layer 값을 변경합니다.
렌더러의 머티리얼 설정 또는 머티리얼의 셰이더 설정에서 렌더러의 렌더 대기열 유형을 지정할 수 있습니다. 이는 서로 다른 머티리얼을 사용하는 렌더러를 그룹화하고 정렬할 때 유용합니다. 자세한 내용은 ShaderLab: SubShader 태그 기술 자료를 참조하십시오.
Camera 컴포넌트는 Projection 설정을 기반으로 렌더러를 정렬합니다. 두 가지 옵션으로 Perspective 및 Orthographic이 있습니다.
이 모드에서 렌더러의 정렬 거리는 카메라 포지션에서 렌더러까지의 직접 거리입니다.
렌더러의 정렬 거리는 카메라 뷰 방향에서 렌더러 위치와 카메라 사이의 거리입니다. 기본 2D 설정의 경우 (0, 0, 1) 축상에 있습니다.
Camera 컴포넌트를 Perspective 또는 Orthographic으로 설정하면 Unity는 선택한 모드와 일치하도록 카메라의 TransparencySortMode를 자동으로 설정합니다. 다음 두 가지 방법으로 Transparency Sort Mode를 수동으로 설정할 수 있습니다.
카메라 Transparency Sort Mode 설정은 Project Settings의 Graphics 카테고리에 있습니다(메인 메뉴: Edit > Project Settings > Graphics). Default로 설정되면 Camera 컴포넌트의 Projection 설정이 우선권을 갖습니다. Default 이외의 옵션으로 설정하면 Camera 컴포넌트의 Projection 설정은 동일하지만, 카메라의 Transparency Sort Mode는 해당 옵션으로 변경됩니다.
Project Settings와 스크립팅 API를 통해 이용할 수 있는 추가 옵션으로는 커스텀 축 정렬 모드가 있습니다.
Project Settings에서 설정한 커스텀 축을 따라 렌더러의 거리를 기준으로 렌더러를 정렬하려면 이 모드를 선택합니다(메인 메뉴: Edit > Project Settings > Graphics > Transparency Sort Axis). 이는 일반적으로 타일맵에서 타일 스프라이트를 올바르게 정렬하고 렌더링하기 위해 Isometric Tilemaps 프로젝트에서 사용됩니다. 자세한 내용은 아이소메트릭 타일맵 만들기를 참조하십시오.
참고: 프로젝트가 2D URP(유니버설 렌더 파이프라인) 프로젝트인 경우 Project Settings에서 Transparency Sort Mode를 사용할 수 없으며, 이는 대신 2D Renderer 에셋 프로퍼티에서 설정됩니다. 자세한 내용은 2D Renderer 에셋 설정 기술 자료를 참조하십시오.
기본적으로 스프라이트의 Sort Point는 Center로 설정되며, Unity는 카메라의 트랜스폼 위치와 스프라이트 중앙 간의 거리를 측정하여 정렬 중 스프라이트의 렌더링 순서를 결정합니다. 다른 옵션은 스프라이트의 Sort Point를 월드 공간의 Pivot 위치로 설정하는 것입니다. 스프라이트의 Sprite Renderer 프로퍼티 설정에서 Pivot 옵션을 선택하고 스프라이트 에디터에서 스프라이트의 피벗 위치를 편집합니다.
정렬 그룹은 정렬을 위한 공통의 루트를 공유하는 렌더러를 그룹화하는 컴포넌트입니다. 같은 정렬 그룹에 있는 모든 렌더러는 동일한 Sorting Layer, Order in Layer, Distance to Camera를 공유합니다. 자세한 내용은 Sorting Group 컴포넌트와 해당 설정에 대한 기술 자료를 참조하십시오.
Unity는 효율적인 렌더링 성능을 위해 동일한 머티리얼 설정(예: 동적 배칭)을 가진 렌더러를 정렬합니다.
여러 렌더러의 정렬 우선 순위가 동일한 경우, 타이브레이커는 Unity가 렌더러를 렌더 대기열에 배치하는 순서입니다. 이 프로세스는 제어할 수 없는 내부 프로세스이므로 정렬 옵션(예: Sorting Layers 및 Sorting Groups)을 사용하여 모든 렌더러에 고유한 정렬 우선 순위를 부여해야 합니다.