오늘은 스프라이트 아틀라스(Sprite Atlas)에 대해 알아보고자 합니다.
프로젝트를 진행하면서 최적화를 위해
UI를 스프라이트 아틀라스로 만들어 보는 게 어떻겠냐는 의견을 듣고
스프라이트 아틀라스가 뭔지, 어떻게 사용하는 건지 한번 정리해 봤습니다.
그 전에 아래의 글을 읽고 오시면 이해하는 데 도움이 될 겁니다.
2024.10.25 - [유니티/공통] - 유니티 - Batching에 대해 알아보자.(feat. Draw call, Set Pass Call, 아틀라스)
스프라이트 아틀라스(Sprite Atlas)
여러 개의 텍스처를 단일 텍스처로 결합하는 에셋
왜 사용하나 ?
Unity는 씬의 각 텍스처에 대해 드로우 콜을 발행하기에,
단일 텍스처로 묶어 관리, 호출함으로써 하나의 드로우 콜을 발행시켜 최적화할 수 있다.
단점?
아틀라스로 묶은 이미지 중에서 하나만 사용하려고 할 때도
전체를 가지고 와야 하는 문제가 생길 수도 있다.
- 상황에 맞게 적절하게 쓰자.
실제 적용 과정
저는 구매한 에셋을 사용하여 설명(실습)하고 있습니다만
따라하실 분은 에셋스토어에 무료 UI를 활용해보시면 좋을 것 같습니다.
Unity 2022.2부터 에디터의 Sprite Atlas Mode는
기본적으로 Sprite Atlas V2 - Enabled로 설정되어 있어서
바로 진행해도 되지만 SpritePacker 설정을 간단하게 알아보고자 추가 해봤습니다.
Edit - project Settings - Editor에 들어가면 Sprite Packer의 모드를 설정할 수 있습니다.
Disable :
현재 프로젝트에서 스프라이트 아틀라스 패킹을 비활성화하려는 경우 선택
V1 (Enable for build):
빌드를 퍼블리싱할 때만 Unity가 스프라이트를 스프라이트 아틀라스에 패킹하도록 설정
V1 (Always Enabled) :
Unity가 선택한 텍스처를 스프라이트 아틀라스에 패킹하고,
스프라이트는 런타임 중에 패킹된 텍스처를 참조.
편집 모드 중에 스프라이트는 원래의 패킹되지 않은 텍스처를 참조
V2 ( Enabled ) :
변경 사항이 있을 때 Unity가 스프라이트를 스프라이트 아틀라스에 즉시 패킹.
패킹된 스프라이트 아틀라스는 프로젝트가 플레이 모드로 전환되거나
빌드를 퍼블리싱할 때 사용.
V2 ( Enabled For Builds) :
빌드를 퍼블리싱할 때만 Unity가 스프라이트를 스프라이트 아틀라스에 패킹.
에디터와 플레이 모드는 원래의 패킹 되지 않은 텍스처를 참조.
설명만 보면 같은 거 아닌가 싶으실 텐데 레거시 차이인 거 같습니다.
더 자세한 사항이 궁금하시다면
아래 참고자료에서 링크를 통해 들어가 보시면 좋을 것 같습니다.
Sprite Atlas를 만드는 방법
우클릭 - Create - 2D - Sprite Atals를 통해서 만들 수 있습니다.
스프라이트 아틀라스 맨 아래에 Objects for Packing이라고
되어 있는 부분에서 이미지를 넣어주면 Packing이 됩니다. (우측 하단 그림)
Sprite를 모아둔 폴더를 통째로 넣는 것도 가능합니다.
적용 안 했을 때 / 했을 때
Frame Debugger로 비교
마무리
오늘은 간단하게 스프라이트 아틀라스(Sprite Atlas)에 대해 알아보았습니다.
여러 그림을 모아놓은 걸 아틀라스라고 하는 건 기존에 들어서 알고 있었습니다.
그래서 처음 들었을 땐 같은 용어인 줄 알았는데,
유니티에 기능으로서 존재하는 걸 말하는지는 처음 알았네요.
비교적 간단한 방법으로 최적화를 진행할 수 있었던 거 같아서
앞으로는 자주 사용할 것 같습니다.
스프라이트 아틀라스가 실제 화면에서 한 번에 그려지는 걸 보여주기 위해
강의에선 프로파일러를 사용하시더군요.
프로파일러 사용법에 대해서도 조만간 정리해 보도록 하겠습니다.
참고한 자료
https://docs.unity3d.com/kr/2021.3/Manual/class-SpriteAtlas.html
스프라이트 아틀라스 - Unity 매뉴얼
2D 프로젝트는 스프라이트와 다른 그래픽스를 사용하여 씬의 시각적 요소를 만듭니다. 따라서 단일 프로젝트에 다수의 텍스처 파일이 들어 있을 수 있습니다. 일반적으로 Unity는 씬의 각 텍스처
docs.unity3d.com
https://docs.unity3d.com/kr/2022.3/Manual/SpriteAtlasWorkflow.html
스프라이트 아틀라스 워크플로 - Unity 매뉴얼
아래 단계에 따라 스프라이트 아틀라스를 만드십시오.
docs.unity3d.com
https://docs.unity3d.com/kr/current/Manual/class-SpriteAtlas.html
Sprite Atlas 프로퍼티 레퍼런스 - Unity 매뉴얼
Unity에서 스프라이트 아틀라스를 생성하려면 Assets > Create > 2D > Sprite Atlas로 이동합니다.Unity는 파일 확장자가 ’.spriteatlas’인 스프라이트 아틀라스를 Assets 폴더에 생성합니다.
docs.unity3d.com
https://docs.unity3d.com/kr/2023.2/Manual/SpritePackerModes.html
스프라이트 패커 모드 - Unity 매뉴얼
스프라이트 아틀라스 기본 패킹 동작을 활성화하거나 비활성화하려면 에디터 설정(메뉴:Edit > Project Settings > Editor)을 열고 Sprite Packer > Mode로 이동합니다.스프라이트 패커의 Mode를 선택하여 Unity
docs.unity3d.com
'유니티 > 2D' 카테고리의 다른 글
유니티 2D - 캐릭터 이름 구현 (WorldSpace 와 InputField - TextMeshPro) (1) | 2024.10.11 |
---|---|
유니티2D - 타일맵에 대해 알아보자 (default 브러시 외 , 룰 타일, 애니메이션 타일) (1) | 2024.10.10 |
유니티 : 렌더러 우선순위 정하기 (2D) (0) | 2024.08.26 |