일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 포스트 프로세싱
- c#
- Strategy Pattern
- Zenject
- addressable
- UniRx
- 최적화
- equals
- 플러그인
- Boxing
- 1인 개발
- Unity
- ==
- Addressable System
- 인앱 결제
- Unboxing
- 게임 개발
- sprite atlas
- 스프라이트 아틀라스
- Abstract Factory Pattern
- ScriptableObject
- 디자인 패턴
- design pattern
- Post Processing
- Reflection
- ReferenceEquals
- Android Plugin
- Today
- Total
One_KWS
스프라이트 아틀라스 (Sprite Atlas) 본문
스프라이트 아틀라스(Sprite Atlas)를 사용하면 여러 개의 텍스처를 단일 텍스처로 합칠 수 있다. 여러 개의 텍스처를 호출할 경우 드로우 콜이 텍스처의 개수만큼 발생하게 되어 성능 저하가 일어날 수 있다. 스프라이트 아틀라스를 사용하면 드로우 콜을 줄일 수 있다.
Sprite Atlas 설정
Edit - Project Settings - Editor에서 Sprite Packer - Mode를 Sprite Atlas V1 - Always Enabled로 변경한다.
Sprite Atlas 만들기
Create → 2D → Sprite Atlas를 선택하여 Sprite Atlas를 생성한다.
생성된 스프라이트 아틀라스의 Inpector 창의 하단에 있는 Objects for Packing에 스프라이트를 추가한다. + 버튼을 눌러 추가하거나 직접 드래그 앤 드롭하여 추가할 수 있다. 스프라이트 폴더를 드래그 앤 드롭하여 통째로 넣을 수도 있다.
Pack Preview를 눌러 만들어진 스프라이트 아틀라스를 볼 수 있다.
Tight Packing &Allow Rotation
Tight Packing을 체크하면 이미지들을 촘촘하게 배치한다. 이미지들을 밀도있게 배치해줌으로써 Sprite Atlas의 공간을 효율적으로 사용할 수 있다.
Allow Rotation도 마찬가지로 체크할 경우 이미지들을 더 촘촘하게 배치할 수 있다. 이미지들을 밀도있게 배치하기 위해 일부 이미지들이 회전되어 들어간다.
Tight Packing과 Allow Rotation을 사용할 때 이미지들이 촘촘하게 배치되어 있기 때문에 다른 이미지의 영역을 침범하는 경우가 발생한다.
이럴 경우 Sprite Editor - Custom Outline에서 이미지의 영역을 설정해주어야 한다.
Script로 Sprite Atlas 사용하기
GetSprite(string name)
GetSprite 함수를 이용하여 아틀라스에 추가한 스프라이트를 가져올 수 있다.
private SpriteAtlas atlas;
...
atlas.GetSprite("sprite name");
...
spriteCount
아틀라스에 추가한 스프라이트의 수를 가져올 수 있다.
private SpriteAtlas atlas;
...
var count = atlas.spriteCount;
...
'Unity' 카테고리의 다른 글
Android Plugin 만들기 (0) | 2023.04.25 |
---|---|
Unity 최적화 - Asset (0) | 2023.04.19 |
Mono, IL2CPP (3) | 2023.04.01 |
Addressable System #5 - Build layout report (0) | 2023.03.24 |
Unity - Editor.Log (0) | 2023.03.24 |