본문 바로가기
C#/Unity

Unity 2D 게임 개발 - 스프라이트에 관해 알아보기

by GangDev 2024. 4. 18.

 

유니티에서 스프라이트는 2D 게임 개발에 사용되는 이미지 에셋이다.

스프라이트는 게임 내에서 캐릭터, 배경, UI 요소 등을 표현하는 데 사용되며, 이를 통해 2D 게임의 시각적 요소를 구성할 수 있다.

 

스프라이트 임포트 및 설정

에셋 임포트:

스프라이트를 유니티 프로젝트에 임포트하기 위해, 컴퓨터의 파일 탐색기(Windows)를 사용하여 Unity 프로젝트의 Assets 폴더에 이미지를 직접 넣는다.

Unity 에디터가 이미지를 인식하여 Project View에 표시한다.

 

Texture Type 변경:

프로젝트 모드가 3D로 설정된 경우, 이미지는 Texture로 설정되므로, 해당 에셋의 Texture Type을 Sprite (2D and UI)로 변경해야 한다.

 

스프라이트 에디터 사용:

스프라이트 에디터를 통해 더 큰 이미지에서 스프라이트 그래픽스를 추출하고, 이미지 에디터에서 하나의 텍스처 내에 여러 개의 컴포넌트 이미지를 편집할 수 있다.

예를 들어, 캐릭터의 팔, 다리, 몸을 하나의 이미지 내에 각각 분리된 요소로 유지하도록 활용할 수 있다.

 

플레이스홀더 스프라이트 생성:

스프라이트 생성기를 사용하여 프로젝트에 플레이스홀더 스프라이트를 생성할 수 있다.

이를 통해 그래픽스가 확보될 때까지 기다릴 필요 없이 개발을 진행할 수 있다.

 

2D 게임 개발에서 스프라이트의 사용 예시

정적 스프라이트:
움직이지 않는 단일 이미지 또는 그래픽으로, 게임 내에서 배경 요소, 사용자 인터페이스 구성 요소, 그리고 다른 애니메이션되지 않은 요소를 표현하는 데 주로 사용된다.

정적 스프라이트는 애니메이션이나 움직임이 없으며, 다른 스프라이트로 대체되지 않는 한 고정되어 있다.

 

애니메이션 스프라이트:

연속으로 재생되는 일련의 이미지 또는 프레임으로, 움직임의 착각을 만들어낸다.

각 프레임은 애니메이션의 다른 단계를 나타내며, 이러한 프레임을 빠르게 연속으로 표시함으로써 움직임을 시뮬레이션할 수 있다.

 

파티클 효과:
작은 개별적인 시각적 요소 또는 "파티클"의 시뮬레이션을 포함한다.

이러한 효과는 불, 연기, 불꽃, 폭발, 비, 눈 등을 퐆함할 수 있으며 , 파티클 시스템을 통해 개발자는 이러한 파티클의 행동, 외관, 움직임을 제어하여 현실적이거나 스타일화된 시각적 효과를 생성할 수 있다.

 


 

스프라이트 렌더러

스프라이트 렌더러는 유니티에서 스프라이트를 렌더링하고, 스프라이트가 2D 및 3D 프로젝트의 씬에 시각적으로 표시되는 방식을 제어하는 컴포넌트다.

스프라이트를 만들면 유니티가 자동으로 스프라이트 렌더러 컴포넌트가 연결된 게임 오브젝트를 생성한다.

또한, 기존 게임 오브젝트에 스프라이트 렌더러 컴포넌트를 추가할 수도 있다.

 

 주요 기능으로 다음과 같은 것들이 있다.

머티리얼 및 셰이더 설정:

스프라이트 렌더러는 머티리얼의 머티리얼 및 셰이더 설정을 사용하여 유니티의 렌더링 방식을 제어한다. 

새로 생성된 스프라이트의 기본 머티리얼은 "Sprites - Default"이며, 씬 조명은 이 기본 스프라이트에 영향을 주지 앟ㄴ는다.

스프라이트가 조명에 반응하도록 만들려면 머티리얼에 "Default - Diffuse"를 할당해야 한다.

 

스프라이트 정렬 포인트:

스프라이트 렌더러의 Draw Mode가 Simple로 설정되었을 때만 이용할 수 있다.

기본적으로 스프라이트의 정렬 포인트는 중심으로 설정되며, 카메라의 Transform 위치와 스프라이트의 중심 사이의 거리를 측정하여 렌더링 순서를 결정한다.

정렬 포인트를 중심에서 다른 위치로 설정하려면 스프라이트 에디터에서 스프라이트의 Pivot 위치를 편집할 수 있다.

 

뒤집기(flip):

스프라이트 렌더러는 스프라이트를 x 축 또는 y 축을 기준으로 쉽게 뒤집는 기능을 제공한다.

이 기능은 다른 컴포넌트나 게임 오브젝트에 영향을 주지 않으며, 렌더링된 스프라이트만 뒤집는다.

 

렌더링:

스프라이트 렌더러는 Sprite 프로퍼티에 정의된 텍스처를 사용하지만, Material 프로퍼티에 정의된 셰이더와 다른 프로퍼티를 사용한다.

이 작업은 MaterialPropertyBlock을 사용하여 이루어진다.

스프라이트는 각 버텍스에서 포지션, 컬러, UV를 사용하는 메시에 렌더링되지만 노멀 벡터를 사용하지 않는다.

 

스프라이트 생성기

스프라이트 생성기는 유니티에서 임시 플레이스홀더 스프라이트(2D 그래픽스)를 생성하는 데 사용되는 도구다.

이 도구를 사용하면 개발 중에 프로젝트에서 임시로 사용할 수 있는 스프라이트를 생성할 수 있으며, 이후 실제로 사용하고자 하는 그래픽으로 교체할 수 있다.

 

* 스프라이트 생성기에 접근하려면, 유니티 에디터에서 Assets > Create > Sprites 를 선택하고, 만들고자 하는 플레이스홀더 스프라이트의 모양을 선택해야 한다.

사용 가능한 모양에는 사각형, 삼각형, 마름모꼴, 육각형, 폴리곤 등이 있다.

 

* 새 플레이스홀더 스프라이트는 현재 열린 에셋 폴더 내에 흰색 모양으로 나타난다.

스프라이트의 이름은 디폴트로 해당 모양의 이름을 따지만, 처음 생성할 때 스프라이트 이름을 변경할 수 있다.

만약 이름을 아직 정하지 못했을 경우 기본 이름으로 그대로 두어야 하며, 나중에 클릭하여 변경할 수 있다.

 

* 프로젝트에서 플레이스홀더 스프라이트를 사용하려면, 스프라이트를 Scene View 또는 Hierarchy로 드래그해야 한다.

 

* 스프라이트 생성기는 4x4 흰색 PNG 아웃라인 텍스처를 만든다.

 

* 플레이스홀더 스프라이트는 알고리즘에 따라 생성되는 완벽한 기본 폴리곤이다(삼각형, 육각형, n면체).

플레이스홀더 스프라이트는 3D primitive와는 다르게 만들어진다.

스프라이트는 에셋이며 다면체이기 때문에 여러 다른 모양을 나타낼 수 있다.

 

* 플레이스홀더 스프라이트를 변경하려면, 씬 뷰에서 해당 스프라이트를 클릭한 후 인스펙터에 있는 Sprite Renderer Component로 편집할 수 있다.

Sprite 필드를 편집하기 위해서는 입력 필드의 오른쪽에 있는 작은 동그라미를 클릭하면 Sprite Selector가 나타나는데 여기에서 사용 가능한 2D 그래픽 에셋 메뉴를 살펴보고 선택할 수 있다.

 

스프라이트 에디터

스프라이트 에디터는 유니티에서 큰 텍스처 또는 스프라이트 시트를 별도의 스프라이트로 슬라이싱하여 유니티 프로젝트에 사용할 스프라이트를 준비하는 데 사용되는 도구다.

이 도구를 통해 스프라이트의 모양, 크기, 피벗 포지션을 변경하고, 스프라이트 텍스처를 렌더링하는 메시의 모양을 편집하며, 스프라이트의 물리 모양을 편집할 수 있다.

 

* 스프라이트 에디터 열기:

스프라이트 에디터를 열기 위해, 유니티 에디터에서 스프라이트 에셋을 선택하고, 인스펙터 창에서 "Sprite Ediotr" 버튼을 클릭한다.

 

주요 기능은 다음과 같다.

 

* 폴리곤 크기 조절:

스프라이트 에디터에서 스프라이트의 폴리곤 크기를 조절할 수 있다.

스프라이트를 클릭하여 초록색 테두리선 및 스프라이트 정보 상자가 나타나도록 하고, 초록색 선을 드래그해 원하는 테두리를 생성하면 된다.

 

자동 슬라이싱:

스프라이트 에디터는 스프라이트에 자동 슬라이싱을 적용할 수 있다.

이 기능을 사용하면 큰 텍스처 또는 스프라이트 시트를 여러 개의 스프라이트로 쉽게 분할할 수 있다.

 

커스텀 아웃라인:

스프라이트 에디터를 사용하여 유니티가 스프라이트 텍스처를 렌더링하는 메시의 모양을 편집할 수 있다.

이를 통해 스프라이트의 테두리를 정확하게 설정하고, 스프라이트의 시각적 표현을 세밀하게 조정할 수 있다.

 

커스텀 물리 모양:

스프라이트 에디터는 스프라이트의 물리 모양을 편집하는 기능도 제공한다.

이를 통해 스프라이트의 충돌 및 우돌 효과를 세밀하게 조정할 수 있다.

 

보조 텍스처:

스프라이트 에디터를 사용하여 편집된 스프라이트에 추가 텍스처를 연결할 수 있다.

이는 스프라이트의 시각적 표현을 풍부하게 하거나, 특정 효과를 추가하는 데 유용하다.

 

스프라이트 에디터 데이터 공급자 API:

스프라이트 데이터 데이터 공급자 API를 사용하여 커스텀 임포터나 에디터 툴에서 스프라이트 데이터를 추가, 변경, 제거할 수 있다.

이는 스프라이트 에디터의 기능을 확장하거나, 자동화 작업을 수행하는 데 유용하다.

 

Sorting Group

Sorting Group은 Unity에서 2D 게임 개발에 사용되는 컴포넌트로, 스프라이트와 같은 2D 오브젝트의 렌더링 순서를 관리하는 데 사용된다.

Sorting Group을 사용하면 여러 스프라이트가 씬 내에서 어떤 순서로 그려지는지를 세밀하게 제어할 수 있다.

예를 들어, 배경 스프라이트와 캐릭터 스프라이트의 렌더링 순서를 정확하게 제어하여 캐릭터가 배경 위에 표시되도록 할 수 있다.

 

Soorting Group 프로퍼티로는 다음과 같은 것들이 있다.

 

* Sorting Layer:

Sorting Group의 이 프로퍼티를 통해 정렬 레이러를 선택하거나 추가할 수 있다.

정렬 레이어는 씬 내의 다른 정렬 그룹과 게임 오브젝트의 렌더링 대기열 우선 순위를 결정한다.

유니티는 정렬 레이어 설정 내 해당 위치를 기준으로 정렬 레이어 순서를 결정하고, 리스트에 표시되는 순서로 정렬 레이러를 렌더링한다.

 

Order in Layer:

이 프로퍼티는 SOrting Layer 내에서 정렬 그룹의 렌더링 순서를 설정한다.

유니티는 값이 가장 낮은 렌더러를 렌더링 대기열에 먼저 넣어 값이 높은 렌더러보다 먼저 표시되도록 만든다.

즉, Order in Layer 값이 낮은 오브젝트가 높은 값을 가진 오브젝트보다 먼저 그려진다.

 

2D 게임 오브젝트에 Sorting Group을 추가하고 설정하는 방법은 다음과 같다.

 

* Sorting Group 컴포넌트 추가:

먼저, 게임 오브젝트를 선택한다.

그 다음, 인스펙터 창에서 Add Component 버튼을 클릭하고, Component > Rendering > Sorting Group 으로 이동하여 Sorting Group 컴포넌트를 추가한다.

 

* Sorting Layer 설정:

Sorting Group 컴포넌트를 추가한 후, Sorting Layer 드롭다운 메뉴에서 정렬 레이러를 선택하거나 추가한다.

이 설정은 씬 내의 다른 렌더러 및 정렬 그룹 간에 렌더링 대기열의 우선순위를 결정하는 데 사용된다.

 

* Order in Layer 설정:

Order in Layer 프로퍼티를 사용하여 해당 Sorting Layer 내에서 이 정렬 그룹의 렌더링 순서를 설정한다.

유니티는 값이 낮은 렌더러를 렌더링 대기열에 먼저 대기시켜 값이 높은 렌더러보다 먼저 표시한다.

 

* Sort at Root 옵션 사용:

 이 옵션을 활성화하면, 중첩된 경우 모든 부모 정렬 그룹이 무시되고, 이 정렬 그룹을 루트 수준에서 다른 렌더러 및 정렬 그룹과 비교하여 정렬할 수 있다.

 

Sorting Group을 사용하면, 2D 멀티 스프라이트 캐릭터를 만드는 데 도움이 된다.

계층 창에서 여러 스프라이트 렌더러를 함께 정렬하고 부모로 지정하여 캐릭터를 형성할 수 있다.

이렇게 하면, 캐릭터의 다양한 부분을 원하는 순서대로 정렬할 수 있다.

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

이 문제를 방지하기 위해, 각 프리팹의 루트 게임 오브젝트에 Sorting Group 컴포넌트를 추가하고, 각 프리팹에는 고유한 Order in Layer 값을 지정하여 일관되게 렌더링 순서를 유지할 수 있다.

 

9-Slicing Sprites

9-Slicing은 2D 게임 개발에서 사용되는 기술로, 이미지를 여러 크기로 재사용할 수 있게 해주며, 이를 통해 다양한 크기의 스프라이트를 효율적으로 관리할 수 있다.

이 기술은 이미지를 9개의 부분으로 나누어, 스프라이트의 크기를 변경할 때 각 부분이 다른 방식으로 스케일링 또는 타일링(반복)되도록 한다.

이렇게 하면 스프라이트의 비율을 유지하면서 패턴이나 텍스처(2D 환경의 벽이나 바닥)을 생성할 수 있다.

 

9-slicing 설정 방법 >>

* 스프라이트 준비:

먼저, 스프라이트의 Mesh Type을 Full Rect로 설정해야 한다.

이를 위해 스프라이트를 선택하고, 인스펙터 창에서 Mesh Type 드롭다운을 클릭하여 Full Rect를 선택한다.

 

* 스프라이트 에디터 사용:

스프라이트 에디터 창을 열어 스프라이트의 테두리를 정의한다.

이를 위해 스프라이트를 선택하고, 인스펙터 창에서 Sprite Editor 버튼을 클릭한다.

스프라이트 에디터 창에서는 스프라이트의 왼쪽, 오른쪽, 위쪽, 아래쪽 테두리를 정의할 수 있다.

 

* 9-slicing 적용:

스프라이트를 씬 뷰나 계층 창에서 선택하고, 인스펙터 창에서 Sprite Renderer 컴포넌트의 Draw Mode 속성을 변경한다.

기본값인 Simple에서 Sliced 또는 Tiled로 변경하여 9-slicing을 적용할 수 있다.

 

9-slicing 모드 >>

* Sliced 모드:

이 모드에서는 스프라이트의 모서리는 크기가 변하지 않고, 상단과 하단은 수평으로, 측면은 수직으로 스케일링된다.

중앙 부분은 스프라이트의 크기에 맞게 수평 및 수직으로 스케일링된다.

 

Tiled 모드:

이 모드에서는 스프라이트의 크기가 변경되지 않고, 상단과 하단은 수평으로, 측면은 수직으로, 중앙 부분은 타일 형태로 반복된다.

 

Sprite Mask

Sprite Masks는 유니티에서 스프라이트의 일부를 숨기거나 보이게 하는 데 사용되는 기능이다.

이를 통해 스프라이트  또는 스프라이트 그룹의 특정 부분만을 표시하거나 숨길 수 있다.

Sprite Mask 는 Sprite Renderer 컴포넌트를 사용하는 오브젝트에만 영향을 미친다.

 

Sprite Mask 생성 및 설정 >>

* Sprite Mask 생성:

Sprite Mask를 생성하려면, 메인 메뉴에서 GameObject > 2D Object > Sprite Mask를 선택한다.

이렇게 하면 씬에 새로운 Sprite Mask GameObject가 생성된다.

 

* Sprite 설정:

SPrite Mask 컴포넌트에 마스크로 사용할 스프라이트를 할당한다.

이 스프라이트는 마스크의 형태를 결정하며, 마스크 영역 내의 스프라이트만이 보이게 된다.

 

* Alpha Cutoff 설정:

스프라이트의 알파 값이 투명과 불투명 영역 사이에서 혼합되어 있을 때, Alpha Cutoff 슬라이더를 조정하여 어떤 영역이 보여질지 수동으로 결정할 수 있다.

 

* Sorting Layer 및 Order in Layer 설정:

Sprite Mask 의 Sorting Layer와 Order in Layer를 설정하여 마스크의 렌더링 순서를 결정한다.

이는 마스크가 어떤 레이어에서 시작하여 마스킹을 시작할지를 결정한다.

 

Range Start 와 Range End 설정:

마스크가 영향을 미치는 레이어의 범위를 설정할 수 있다.

기본적으로 마스크는 자신보다 낮은 정렬 순서를 가진 모든 레이어에 영향을 미친다. 

하지만 사용자 정의 범위를 설정하여 특정 레이어 또는 정렬 순서 내에서만 마스크가 적용되도록 할 수 있다.

 

Sprite Mask 사용 >>

* Sprite Renderer의 Mask Interaction 설정:

Sprite Mask의 영향을 받을 스프라이트는 Sprite Renderer 컴포넌트의 Mask Interaction 설정을 통해 결정된다.

기본적으로 마스크는 씬 내의 모든 스플아ㅣ트에 영향을 미치지만, 특정 스프라이트나 스프라이트 그룹에만 영향을 미치도록 설정할 수 있다.

 

* Sorting Group Component 사용:

특정 스프라이트에만 마스크가 영향을 미치도록 하려면, 해당 스프라이트의 부모 GameObject에 Sorting Group Component를 추가하고, 마스크가 해당 Sorting Group의 자식 오브젝트에만 영향을 미치도록 설정할 수 있다.

 

Sprite Atlas

Sprite Atlas는 여러 개의 텍스처를 단일 텍스처로 결합하는 유니티의 에셋이다.

이를 통해 여러 개의 드로우 콜을 발행하는 대신 하나의 드로우 콜을 발행할 수 있으며, 이는 큰 성능 소모 없이도 패킹된 텍스처에 동시에 액세스할 수 있게 해준다.

스프라이트 아틀라스 API는 프로젝트의 런타임 시점에 스프라이트 아틀라스를 로드하는 방법을 제어할 수 있도록 해준다.

 

스프라이트 아틀라스는 2D 게임 개발에서 성능을 최적화하고, 리소스 사용을 줄이는 데 중요한 역할을 한다.

이를 통해 여러 개의 텍스처를 단일 텍스처로 결합하여 드로우 콜의 수를 줄이고, 메모리 사용량을 줄이며, 런타임 성능을 향상시킬 수 있다.

 

* 스프라이트 아틀라스 생성:

유니티 에디터에서 Asset > Create > Sprite Atlas 를 선택하여 스프라이트 아틀라스를 생성한다.

이렇게 하면 .spriteatlas 파일 확장자가 붙은 스프라이트 아틀라스가 생성된다.

 

스프라이트 아틀라스 프로퍼티 >>

* Type: 스프라이트 아틀라스의 타입을 'Master' 또는 'Variant'로 설정할 수 있다. 'Master'가 기본 타입 설정이다.

* Include in Build: 스프라이트 아틀라스 에셋을 현재 빌드에 포함하려면 이 체크박스를 선택한다. 이 옵션은 기본적으로 활성화되어 있다.

* Allow Rotation: 스프라이트가 스프라이트 아틀라스에 패킹될 때 회전하도록 허용하려면 이 체크박스를 선택한다. 이는 결합된 텍스처의 스프라이트 밀도를 극대화할 수 있다.

* Tight Packing: 기본 직사각형 아웃라인 대신 해당 스프라이트 아웃라인에 따라 스프라이트를 패킹하려면 이 체크박스를 선택한다.

* Padding: 스프라이트 아틀라스의 개별 스프라이트 텍스처 사이에 있는 픽셀 수를 정의한다. 이는 인접해 있는 스프라이트 간의 픽셀 중복을 방지하는 버퍼 역할을 한다.

* Read/Write Enabled: 스크립트 함수에서 텍스처 데이터에 액세스하도록 허용하려면 이 체크박스를 선택한다.

* Generate Mip Maps: 밉맵 생성을 활성화하려면 이 체크박스를 선택한다.

* sRGB: 감마 공간에 텍스처를 저장하려면 이 체크박스를 선택한다.

* Filter Mode: 변환 과정에서 스트레치될 때 Unity가 패킹된 텍스처를 필터링하는 방식을 선택한다.

* Objects For Packing: Unity가 이 리스트의 모든 항목을 현재 선택된 스프라이트 아틀라스로 패킹한다.

 

Master Sprite Atlas 와 Variant Sprite Atlas의 차이

Master와 Variant 스프라이트 아틀라스는 유니티에서 스프라이트 아틀라스의 두 가지 타입이다.

스프라이트 아틀라스는 여러 개의 작은 텍스처를 단일 텍스처로 결합하는 기능을 제공하며, 이를 통해 게임의 성능을 최적화하고 리소스 사용을 줄일 수 있다.

 

Master 아틀라스는 기본적인 스프라이트 아틀라스 기능을 제공하며, Variant 아틀라스는 다양한 해상도와 플랫폼에 대응하기 위해 스케일 조정 기능을 제공한다.

 

Master Sprite Atlas >>

* 기본 타입: 스프라이트 아틀라스는 기본적으로 Master 타입으로 생성된다. Master 아틀라스는 스프라이트 아틀라스의 기본 버전으로, 여러 개의 스프라이트를 포함하고 있다.

* 특징: Master 아틀라스는 스프라이트 아틀라스의 기본 버전으로, 여러 개의 스프라이트를 포함하고 있다. 이는 게임 내에서 여러 개의 스프라이트를 단일 텍스처로 결합하여 성능을 최적화하는 데 사용된다.

 

Variant Sprite Atlas >>

* 생성 및 설정: Variant 스프라이트 아틀라스는 master 스프라이트 아틀라스의 내용을 복사하여 자신의 내용으로 사용한다. master 아틀라스를 설정하고, 이를 Variant 아틀라스의 Master Atlas 속성에 할당하여 Variant 아틀라스를 생성한다.

* 특징: Variant 아틀라스는 Master 아틀라스의 내용을 기반으로 하지만, 스케일 값을 조정하여 텍스처의 해상도를 변경할 수 있다. 이를 통해 다양한 행상도의 스프라이트 아틀라스를 생성하여, 게임이 다양한 플랫폼에서 실행될 때 성능을 최적화할 수 있다.

* 스케일 조정: Variant 아틀라스의 스케일 값을 조정하여, Master 아틀라스의 텍스처 해상도를 변경할 수 있다. 이는 게임이 다양한 하드웨어 제한을 가진 플랫폼에서 실행될 때 유용하다.

 

차이점 >>

* 콘텐츠 소스: Master 스프라이트 아틀라스는 직접 스프라이트를 포함하고 있으며, 이는 게임 내에서 단일 텍스처로 결합된다. 반면, Variant 스프라이트 아틀라스는 Master 아틀라스의 내용을 복사하여 사용한다.

* 스케일 조정: Variant 스프라이트 아틀라스는 Master 아틀라스의 내용을 기반으로 하지만, 스케일 값을 조정하여, Master 아틀라스의 텍스처 해상도를 변경할 수 있다. 이는 게임이 다양한 플랫폼에서 실행될 때 성능을 최적화하는 데 사용된다.

 

Sprite Atlas와 메모리 사용량

Sprite Atlas는 여러 개의 스프라이트를 단일 텍스처로 결합하여 메모리 사용량을 줄이고, 게임의 성능을 향상시키는 데 도움이 된다.

스프라이트 아틀라스를 사용하면, 게임이 여러 개의 텍스처를 로드하고 관리하는 대신 단일 텍스처를 로드하고 관리하기 때문에, 메모리 사용량을 줄일 수 있다.

이는 특히 모바일 디바이스와 같은 제한된 메모리 용량을 가진 플랫폼에서 중요한 요소다.

 

스프라이트 아틀라스의 메모리 사용량에 영향을 미치는 요인들로 다음과 같은 것들이 있다 >>

* 패킹된 오브젝트의 수:

스프라이트 아틀라스에 패킹된 오브젝트의 수가 많을수록 메모리 사용량이 증가할 수 있다.

이는 아틀라스가 더 많은 데이터를 처리해야 하기 때문이다.

 

* 텍스처 해상도:

스프라이트 아틀라스 내의 텍스처의 해상도가 높을수록 메모리 사용량이 증가한다.

높은 해상도의 텍스처는 더 많은 픽셀 데이터를 포함하고 있으므로, 이를 처리하기 위해 더 많은 메모리가 필요하다.

 

* 패딩 값:

스프라이트 아틀라스의 패딩 값이 클수록 메모리 사용량이 증가할 수 있다.

패딩은 스프라이트 아틀라스 내의 스프라이트 내의 스프라이트 사이에 추가되는 픽셀 수로, 이 값이 클수록 더 많은 공간이 필요하게 된다.

 

* 밀도 최적화:

스프라이트 아틀라스의 밀도 최적화 옵션이 활성화되어 있을 경우, 스프라이트 아틀라스는 더 많은 공간을 사용하여 스프라이트를 패킹하려고 시도한다.

이는 메모리 사용량을 증가시킬 수 있다.

 

* 밉맵 생성:

스프라이트 아틀라스에서 밉맵 생성 옵션을 활성화하면, 밉맵을 위한 추가적인 메모리가 필요하게 된다.

밉맵은 텍스처의 더 낮은 해상도 버전을 저장하여, 텍스처의 품질을 유지하면서 메모리 사용량을 줄이는 데 도움이 된다.

 

Sprite Shape Renderer

Sprite Shape Renderer는 유니티에서 스프라이트 쉐이프를 렌더링하는 컴포넌트다.

이 컴포넌트는 스프라이트 쉐이프 프로파일에서 파생된 스프라이트 쉐이프 지오메트리를 씬 내에서 시각적으로 어떻게 표현할지 제어한다.

이를 통해 게임 내에서 다양한 시각적 요소를 효율적으로 관리하고, 스프라이트 쉐이프의 색상, 투명도, 렌더링 우선 순위 등을 세밀하게 조정할 수 있다.

 

주요 기능으로는 다음과 같은 것들이 있다 >>

* 색상 설정:

Sprite Shape Renderer의 색상 속성을 사용하여 스프라이트 쉐이프 지오메트리의 꼭짓 색상을 정의할 수 있다.

이를 통해 스프라이트 쉐이프의 색상을 변경하거나 색상을 조정할 수 있다.

 

* 마스크 상호작용:

Sprite Shape Renderer는 스프라이트 마스크와의 상호작용 방식을 설정할 수 있다.

이를 통해 스프라이트 쉐이프가 스프라이트 마스크의 영향을 받는 방식을 제어할 수 있다.

예를 들어, "Visible Inside Mask" 옵션을 선택하면 스프라이트 쉐이프는 스프라이트 마스크가 그것을 덮어쓰는 곳에서만 보이게 된다.

 

* 정렬 레이어 및 순서 설정:

스프라이트 쉐이프 지오메트리의 정렬 레이어와 순서를 설정할 수 있다.

이를 통해 스프라이트 쉐이프의 렌더링 우선 순위를 제어할 수 있다.

 

* Fill Material 과 Edge Material 설정:

스프라이트 쉐이프의 채우기 및 가장자리 지오메트리를 렌더링하는 데 사용되는 머티리얼과 쉐이더 설정을 제어할 수 있다.

기본적으로 'Sprites - Default' 머티리얼이 사용되며, 이는 씬 조명에 영향을 받지 않는다.

조명에 반응하도록 하려면 'Default - Diffuse' 머티리얼을 사용해야 한다.