2D에서의 게임플레이
스프라이트

2D 정렬

개요

Unity는 타입과 용도에 기반한 우선 순위에 따라 렌더러를 정렬합니다. 렌더러 대기열을 통해 렌더러의 렌더 순서를 지정할 수 있습니다. 일반적으로 두 가지 메인 대기열, 즉 불투명 대기열투명 대기열이 있습니다. 2D 렌더러는 주로 투명 대기열 안에 있으며 스프라이트 렌더러, 타일맵 렌더러스프라이트 셰이프 렌더러 타입을 포함합니다.

우선 순위에 기반한 투명 대기열 정렬 순서

투명 대기열 내에 있는 2D 렌더러는 대개 아래의 우선 순위를 따릅니다.

  1. 정렬 레이어 및 레이어 순서
  2. 렌더 대기열 지정
  3. 카메라까지의 거리
  4. 정렬 그룹
  5. 머티리얼/셰이더
  6. 타이브레이커는 여러 렌더러의 정렬 우선 순위가 동일할 때 발생합니다.

정렬 순서가 일반적인 우선 순위와 달라지도록 만드는 다른 요소들도 있으며, 이러한 요소들은 프로젝트에 따라 다릅니다.

정렬 레이어 및 레이어 순서

렌더러의 Property 설정에 있는 Sorting LayerOrder in Layer는 인스펙터(Inspector) 창 또는 Unity 스크립팅 API를 통해 모든 2D 렌더러에서 이용할 수 있습니다. 렌더러를 기존의 Sorting Layer로 설정하거나, 신규 생성을 통해 렌더링 대기열의 우선 순위를 결정하십시오. Order in Layer의 값을 변경하여 동일한 Sorting Layer 내 다른 렌더러들의 렌더러 우선 순위를 설정하십시오.

렌더 대기열 지정

머티리얼 설정 또는 해당 머티리얼의 셰이더 설정에서 렌더러의 렌더 대기열 타입을 지정할 수 있습니다. 이렇게 하면 다른 머티리얼을 사용하는 렌더러를 쉽게 그룹화하거나 정렬할 수 있습니다. 자세한 내용은 ShaderLab: SubShader 태그 문서를 참조하십시오.

카메라까지의 거리

Camera 컴포넌트Projection 설정에 따라 렌더러를 정렬합니다. 제공되는 두 가지 옵션은 PerspectiveOrthographic입니다.

원근

이 모드에서 렌더러의 정렬 거리는 카메라 포지션에서 렌더러까지의 직접 거리입니다.

직교

렌더러의 정렬 거리는 카메라 뷰 방향에서 렌더러 포지션과 카메라 사이의 거리입니다. 기본 2D 설정의 경우 (0, 0, 1) 축상에 있습니다.

Camera 컴포넌트를 Perspective 또는 Orthographic으로 설정하면 Unity가 선택한 모드에 맞게 카메라의 TransparencySortMode를 자동으로 설정합니다. 투명도 정렬 모드는 다음의 두 가지 방법으로 수동 설정할 수 있습니다.

  • Project Settings를 열고 Graphics로 이동한 후 Camera Settings 아래에서 Transparent Sort 모드를 사용합니다.
  • 스크립팅 API를 통해 카메라의 TransparencySortMode를 설정합니다.

카메라 Transparency Sort Mode 설정은 Project SettingsGraphics 카테고리(메인 메뉴: Edit > Project Settings > Graphics) 아래에 있습니다. 이 옵션을 Default로 설정하면 Camera 컴포넌트의 투사 설정이 우선권을 가집니다. Default 외에 다른 옵션으로 설정할 경우 Camera 컴포넌트의 투사 설정이 동일하게 유지되지만, 카메라의 Transparency Sort Mode가 해당 옵션으로 변경됩니다.

프로젝트 설정과 스크립팅 API를 통해 이용할 수 있는 추가 옵션으로는 Custom Axis 정렬 모드가 있습니다.

커스텀 축 정렬 모드

이 모드를 선택하면 프로젝트 설정(메인 메뉴: Edit > Projecting Settings > Graphics > Transparency Sort Axis)에서 설정한 커스텀 축상의 거리에 따라 렌더러를 정렬할 수 있습니다. 이 모드는 보통 아이소메트릭 타일맵을 사용하는 프로젝트에서 타일맵의 타일 스프라이트를 정렬하고 렌더링할 때 사용됩니다. 자세한 내용은 아이소메트릭 타일맵 만들기를 참조하십시오.

스프라이트 정렬 포인트

기본적으로 스프라이트의 Sort PointCenter로 설정되며, Unity는 카메라의 트랜스폼 포지션과 스프라이트의 중앙 사이의 거리를 측정하여 정렬 작업의 렌더 순서를 결정합니다. 또 다른 옵션으로 스프라이트의 Sort Point를 월드 공간의 Pivot 포지션으로 설정할 수 있습니다. 스프라이트의 스프라이트 렌더러 프로퍼티 설정에 있는 Pivot 옵션을 선택하고 스프라이트 에디터에서 스프라이트의 피벗 포지션을 편집하십시오.

정렬 그룹

Sorting Group 컴포넌트는 정렬 목적을 위해 동일한 루트를 공유하는 렌더러를 그룹화합니다. 동일한 정렬 그룹에 속한 모든 렌더러는 같은 Sorting Layer, Order in LayerDistance to Camera를 공유합니다. 자세한 내용은 Sorting Group 컴포넌트와 해당 설정에 관한 문서를 참조하십시오.

머티리얼/셰이더

Unity는 효율적인 렌더링 성능을 위해 동일한 머티리얼 설정(예: 동적 배칭)을 가진 렌더러를 정렬합니다.

타이브레이커

여러 개의 렌더러가 동일한 정렬 우선 순위를 가진 경우 타이브레이커 순서에 따라 Unity가 렌더러를 렌더 대기열에 넣습니다. 이는 제어가 불가능한 내부 프로세스이므로 Sorting Layer, Sorting Group 등과 같은 정렬 옵션을 사용하여 모든 렌더러에 고유한 정렬 우선 순위가 지정되었는지 확인해야 합니다.

2D에서의 게임플레이
스프라이트