Sprite Renderer 컴포넌트를 사용하여 2D와 3D 씬에서 사용되는 Sprites 로 이미지를 표시할 수 있습니다.
컴포넌트 메뉴(Component > Rendering > Sprite Renderer)에서 스프라이트 렌더러를 게임 오브젝트에 추가할 수 있습니다. 또는 메뉴(GameObject > 2D Object > Sprite)에서 스프라이트 렌더러가 이미 추가된 게임 오브젝트를 생성할 수 있습니다.
프로퍼티: | 기능: |
---|---|
Sprite | 렌더링할 스프라이트 오브젝트입니다. 스프라이트 오브젝트는 텍스처 임포터의 스프라이트 설정을 사용하여 텍스처로부터 생성할 수 있습니다. |
Color | 렌더링된 메시의 버텍스 컬러입니다. |
Flip | X 평면 또는 Y 평면을 기준으로 스프라이트를 뒤집습니다. |
Material | 스프라이트를 렌더링할 때 사용하는 머티리얼입니다. |
Draw Mode | 드로우 모드 드롭다운 박스에서 스프라이트의 크기를 변경할 때 스프라이트를 확장하는 방법을 정의합니다. |
Simple | 스프라이트 렌더러의 디폴트 동작입니다. 스프라이트의 크기를 변경하면 이미지가 모든 방향으로 확장됩니다. |
Sliced | 이미지에 9 슬라이싱을 적용하고 각 부분을 확장하려면 Sliced 옵션을 사용해야 합니다. Sliced 모드에서 코너의 크기는 같고, 스프라이트의 상단과 하단은 수평으로 늘어나고, 스프라이트의 측면은 수직으로 늘어나며, 스프라이트의 중심은 스프라이트의 크기에 맞게 수평과 수직으로 늘어납니다. 자세한 내용은 9 슬라이싱 스프라이트를 참조하십시오. |
Size | 스프라이트의 수평 및 수직 크기를 변경할 때 사용해야 합니다. 9 슬라이싱이 올바로 적용되게 하려면 반드시 여기에서 스프라이트의 크기를 변경해야 합니다. 디폴트 Transform 컴포넌트는 디폴트 스케일만 적용합니다. |
Tiled | 이미지에 9 슬라이싱을 적용하고 각 부분이 반복되도록 하려면 Tiled 옵션을 사용해야 합니다. Tiled 모드에서 스프라이트의 크기는 동일하며 크기가 조정되지 않습니다. 대신 스프라이트의 상단과 하단은 수평으로 반복되고, 측면은 수직으로 반복되며, 스프라이트의 중심은 스프라이트 크기에 알맞도록 타일 포맷으로 반복됩니다. 자세한 내용은 스프라이트 9 슬라이싱을 참조하십시오. |
Size | 스프라이트의 수평 및 수직 크기를 변경할 때 사용해야 합니다. 9 슬라이싱이 올바로 적용되게 하려면 반드시 여기에서 스프라이트의 크기를 변경해야 합니다. 디폴트 Transform 컴포넌트는 디폴트 스케일만 적용합니다. |
Tile Mode | 드로우 모드가 타일로 설정된 경우 Tile Mode 프로퍼티를 사용하여 스프라이트의 크기가 변경될 때 각 부분이 반복되는 방식을 제어합니다. |
Continuous | 타일 모드는 기본적으로 연속(Continuous)으로 설정되어 있습니다. 스프라이트의 크기가 변경되면 반복되는 부분이 스프라이트 전체에서 고르게 반복됩니다. |
Adaptive | 타일 모드가 적응적(Adaptive)으로 설정된 경우 반복되는 부분은 스프라이트의 크기가 스트레치 값에 도달할 때만 반복됩니다. |
Stretch Value | 스트레치 값 슬라이더를 사용하여 01 사이의 값을 설정해야 합니다. 1은 오리지널 크기의 두 배로 크기가 조정된 이미지를 나타내므로 스트레치 값이 1로 설정된 경우 이미지가 오리지널 크기의 두 배로 늘어났을 때 섹션이 반복됩니다. |
Sorting Layer | 렌더링 시 스프라이트의 오버레이 우선 순위를 정의하는 레이어입니다. |
Order In Layer | 레이어 내에서 스프라이트의 오버레이 우선 순위입니다. 낮은 숫자가 먼저 렌더링되며 다음 숫자가 그 아래의 스프라이트를 오버레이합니다. |
3D 그래픽스에서는 보여지는 포지션과 조명에 따라 오브젝트의 형상이 달라집니다. 대조적으로 2D에서 이미지는 기본 포지션, 스케일, 회전 외에 다른 변환 없이 그대로 화면에 표시됩니다. 2D 좌표를 부여받은 스프라이트 포지션으로, 렌더링 시 카메라로부터의 거리나 “뎁스” 컨셉트가 존재하지 않습니다.
그러나 각각 다른 스프라이트의 오버레이 순서를 결정하는 것은 매우 중요합니다. 즉, 여러 스프라이트의 경로가 교차될 때 어떤 스트라이트가 위에 놓일지를 결정하는 방식이 존재해야 합니다. 예를 들어 운전 게임에서는 자동차가 도로 표면의 플랫 오브젝트를 지나가는 것처럼 보여야 합니다. Unity는 Sorting Layer 개념을 사용하여 스프라이트를 그룹으로 나누어 오버레이의 우선 순위를 결정합니다. 순서가 높은 정렬 레이어의 스프라이트는 순서가 낮은 정렬 레이어의 스프라이트를 오버레이합니다.
때로는 동일한 정렬 레이어에 있는 두 개 이상의 오브젝트(예: 횡스크롤 게임에서 플레이어 캐릭터가 둘인 경우)가 서로 겹치기도 합니다. Order In Layer 프로퍼티를 활용하여 동일한 레이어의 스프라이트에 일관된 우선 순위를 적용할 수 있습니다. 정렬 레이어의 규칙과 마찬가지로, 낮은 숫자가 먼저 렌더링되고 나중에 렌더링되는 높은 숫자가 그 위에 놓입니다. 정렬 레이어 편집에 대한 자세한 내용은 레이어 관리자 페이지를 참조하십시오. 정렬 레이어를 사용하지 않으면 스탠다드 뎁스 기반 정렬이 사용됩니다.
스프라이트 렌더러는 Sprite 프로퍼티에 정의된 텍스처를 사용하지만 Material 프로퍼티에 정의된 셰이더와 다른 프로퍼티를 사용합니다. 이 작업은 씬 뒤에서 MaterialPropertyBlock을 사용하여 이루어집니다. 즉, 머티리얼에 할당되는 텍스처에 대해 신경 쓸 필요 없이 동일한 머티리얼을 사용하여 다른 스프라이트를 렌더링할 수 있습니다.
스프라이트는 각 버텍스에서 포지션, 컬러, UV를 사용하는 메시에 렌더링되지만 노멀 벡터를 사용하지 않습니다. 머티리얼에 노멀 벡터가 필요할 경우 버텍스 셰이더를 사용하여 계산할 수 있습니다. 자세한 내용은 표면 셰이더 예제 페이지를 참조하십시오.
스프라이트에 사용되는 디폴트 셰이더는 다음과 같습니다.
Sprites/Default - 씬에서 광원과 상호작용하지 않는 단순한 알파 블렌디드 셰이더입니다.
Sprites/Diffuse - 광원과 상호작용하는 단순한 알파 블렌디드 표면 셰이더입니다. 전면 방향의 노멀 벡터 (0,0, –1)를 생성합니다.
스프라이트는 음수transform.scale
을 설정하여 뒤집을 수 있지만, 자식 게임 오브젝트를 뒤집고 콜라이더를 뒤집는 부작용이 있으며, 높은 성능이 요구될 수 있으므로 부작용이 염려된다면 사용하지 않는 것이 좋습니다.
SpriteRenderer 뒤집기 기능은 다른 컴포넌트나 게임 오브젝트에 영향을 주지 않는 가벼운 대체 기능을 제공합니다. 렌더링된 스프라이트만 x 축 또는 y 축을 기준으로 쉽게 뒤집습니다.