스프라이트 아틀라스는 에셋입니다.
스프라이트 아틀라스는 Unity 에디터의 메뉴 옵션으로 생성되며 프로젝트 폴더에서 에셋으로 보관됩니다(*.spriteatlas).
스프라이트 아틀라스 에셋은 팩한 텍스처에 여러 텍스처 설정을 제공합니다. 아틀라스에 팩한 스프라이트의 텍스처 설정과는 상관 없이 아틀라스 텍스처 결과는 아틀라스 에셋의 설정만을 사용합니다.
스프라이트 아틀라스 에셋에는 런타임 중 액세스 가능한 런타임 표현이 있습니다.
다른 스프라이트 아틀라스 에셋을 생성하고 프로젝트에 이미 있는 스프라이트 아틀라스의 배리언트로 선언할 수 있습니다. 그 후엔 마스터 아틀라스 텍스처를 복제하여 멀티플라이어에 따라 크기를 조절합니다.
스프라이트 패커는 기본적으로 비활성화되지만 Unity 에디터 설정(Edit > Project Settings > Editor)에서 변경할 수 있습니다. 스프라이트 패킹 모드를 Disabled 에서 다른 옵션으로 변경할 수 있습니다.
플레이 모드 동안 에셋 번들에서 로드된 패킹된 스프라이트를 테스트하는 경우 항상 활성화(Always Enabled) 를 사용하십시오.
스프라이트 아틀라스는 Unity 프로젝트의 에셋 타입입니다. 프로젝트 뷰에서 생성하고 사용할 수 있습니다. 스프라이트 아틀라스를 생성하려면 메인 메뉴에서 Asset -> Create -> Sprite Atlas 를 선택합니다.
| 프로퍼티 | 기능 |
|---|---|
| Type | 아틀라스의 타입을 Master나 Variant 아틀라스로 설정합니다. |
| Include in build | 아틀라스 에셋을 언제나 빌드에 포함합니다. |
| Allow Rotation | 스프라이트를 패킹할 때 회전이 가능하도록 합니다. |
| Tight Packing | 비직사각형 패킹 |
| Read/Write Enabled | 텍스처 데이터를 스크립트에서 읽을 수 있게 하려면 이 옵션을 true로 설정합니다. 스크립트가 텍스처 데이터를 읽지 못하게 하려면 이 옵션을 false로 설정합니다. |
| Generate Mip Maps | 밉맵 생성을 활성화하려면 이 옵션을 선택합니다. 밉맵은 텍스처가 화면에서 매우 작을 때 사용되는 텍스처의 더 작은 버전입니다. |
| Filter Mode | 텍스처 필터 방법을 선택합니다. |
| Platform-specific overrides panel | 플랫폼 특정 오버라이드 패널을 사용해 기본 옵션을 설정하고(기본값 사용), 패널 상단의 버튼을 사용해 특정 플랫폼용으로 오버라이드합니다. https://docs.unity3d.com/Manual/class-TextureImporterOverride.html |
| Objects For Packing | 아틀라스 팩에 포함될 오브젝트입니다. 폴더, 텍스처 또는 개별 스프라이트를 리스트에 추가할 수 있습니다. |
폴더, 텍스처 또는 스프라이트를 스프라이트 아틀라스에 할당할 수 있습니다. 폴더 전체를 스프라이트 아틀라스 에셋에 할당할 수 있으며, 하위 폴더를 포함한 해당 폴더의 모든 텍스처를 패킹합니다. 개별 텍스처를 할당할 때는 모든 정의된 스프라이트가 포함됩니다. 스프라이트 하나를 아틀라스에 할당할 수 있으며 같은 텍스처의 다른 스프라이트는 고려되지 않습니다.
에셋을 아틀라스에 추가하려면 아틀라스 에셋을 선택하고 리스트에 새 항목을 추가하거나 프로젝트에서 인스펙터의 리스트 영역으로 드래그 앤 드롭하여 추가할 수 있습니다. 아틀라스에 폴더, 텍스처, 스프라이트를 추가할 수 있습니다.
생성된 아틀라스에 원하는 설정을 설정합니다. 설정을 변경하면 아틀라스를 수정됨으로 표시하고 패키징 단계에서 다시 패킹됩니다.
아틀라스 팩은 인스펙터의 “팩 미리보기” 버튼을 눌러 미리 볼 수 있습니다. 이는 아틀라스의 패킹을 유발합니다. 패킹이 끝나면 텍스처가 미리 보기 섹션에 나타납니다.
Always Enabled 가 선택됐다면 설정이 수정된 모든 아틀라스가 재생 모드에 진입하기 전에 패킹됩니다.
다른 스프라이트 아틀라스 에셋을 생성하고 프로젝트에 이미 있는 스프라이트 아틀라스의 배리언트로 선언할 수 있습니다. 그런 다음, 마스터 아틀라스 텍스처를 복사해 멀티플라이어에 따라 크기를 조절합니다.
스프라이트 아틀라스의 타입을 Variant로 설정합니다.
![]()
아틀라스를 마스터 아틀라스 슬롯에 할당합니다.
![]()
배리언트의 스케일링 팩터를 설정합니다. 값은 0.11 사이로 설정합니다.
마스터가 아닌 배리언트 아틀라스를 기본으로 바인드하려면 배리언트의 “바인드에 포함” 옵션에 체크하고 마스터에서는 해당 옵션의 체크를 해제합니다.
둘다 확인하면 둘 중 하나의 아틀라스(master/variant)를 무작위로 포함합니다. 다음에서 언급하는 것과 같이 늦은 바인딩을 하려면 둘다 체크를 해제해야 할 수도 있습니다.
“SpriteAtlas”를 변수로 갖는 커스텀 컴포넌트를 생성합니다.
이미 있는 스프라이트 아틀라스를 필드에 할당합니다.
플레이 모드에 진입하거나 플레이어를 실행합니다.
변수에 액세스하면 “.GetSprites” 프로퍼티를 호출해 이 아틀라스에 패킹된 스프라이트 어레이를 얻을 수 있습니다.
스프라이트는 런타임에 어떤 아틀라스 참조도 없이 팩킹된 상태로 시작할 수 있으며 아틀라스가 바인드될 때까지 공백으로 보입니다. 이 동작의 장점으로는 예를 들어, 에셋 번들이 웹에서 다운로드됐을 때처럼 시작 중에 아틀라스의 소스를 사용할 수 없는 경우 늦은 바인딩을 할 수 있게 해줍니다.
스프라이트가 스프라이트 아틀라스에 패킹되어 있지만 기본으로 바운딩되어 있지 않은 경우(“빌드안에 포함” 옵션이 선택되지 않음)에는 스프라이트가 씬에 보이지 않습니다.
SpriteAtlas.atlasRequested 콜백을 기다릴 수 있습니다.
이 대리 메서드는 바인딩 되어야 하는 아틀라스의 태그와 SpriteAtlas 에셋을 받는 System.Action을 제공합니다. 어느 방법으로든(스크립트 레퍼런스, Resources.load, 에셋 번들) 에셋을 로드하고 System.Action으로 에셋을 제공할 수 있습니다.