Version: 2017.2
스프라이트 마스크
타일맵(Tilemap)

스프라이트 아틀라스(Sprite Atlas)

스프라이트 아틀라스는 에셋입니다.

스프라이트 아틀라스는 Unity 에디터의 메뉴 옵션으로 생성되며 프로젝트 폴더에서 에셋으로 보관됩니다(*.spriteatlas).

통합된 설정(Settings)

스프라이트 아틀라스 에셋은 팩한 텍스처에 여러 텍스처 설정을 제공합니다. 아틀라스에 팩한 스프라이트의 텍스처 설정과는 상관 없이 아틀라스 텍스처 결과는 아틀라스 에셋의 설정만을 사용합니다.

런타임 액세스

스프라이트 아틀라스 에셋에는 런타임 중 액세스 가능한 런타임 표현이 있습니다.

배리언트(Variants)

다른 스프라이트 아틀라스 에셋을 생성하고 프로젝트에 이미 있는 스프라이트 아틀라스의 배리언트로 선언할 수 있습니다. 그 후엔 마스터 아틀라스 텍스처를 복제하여 멀티플라이어에 따라 크기를 조절합니다.

스프라이트 패커는 기본적으로 비활성화되지만 Unity 에디터 설정(파일 메뉴: Edit -> Project Settings -> Editor)에서 변경할 수 있습니다. 스프라이트 패킹 모드를 비활성화에서 Enabled for Builds 로 변경해 재생 모드가 아닌 빌드에만 사용하거나 Always Enabled 를 사용할 수 있습니다(아틀라스는 재생 모드로 들어가기 전이나 빌드를 위해 팩됩니다).

스프라이트 아틀라스(Sprite Atlas) 생성 방법

스프라이트 아틀라스는 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 아틀라스 팩에 포함될 오브젝트입니다. 폴더, 텍스처 또는 개별 스프라이트를 리스트에 추가할 수 있습니다.

아틀라스로 만들 에셋 할당

폴더, 텍스처 또는 스프라이트를 스프라이트 아틀라스에 할당할 수 있습니다. 폴더 전체를 스프라이트 아틀라스 에셋에 할당할 수 있으며, 하위 폴더를 포함한 해당 폴더의 모든 텍스처를 패킹합니다. 개별 텍스처를 할당할 때는 모든 정의된 스프라이트가 포함됩니다. 스프라이트 하나를 아틀라스에 할당할 수 있으며 같은 텍스처의 다른 스프라이트는 고려되지 않습니다.

  1. 에셋을 아틀라스에 추가하려면 아틀라스 에셋을 선택하고 리스트에 새 항목을 추가하거나 프로젝트에서 인스펙터의 리스트 영역으로 드래그 앤 드롭하여 추가할 수 있습니다. 아틀라스에 폴더, 텍스처, 스프라이트를 추가할 수 있습니다.

  2. 생성된 아틀라스에 원하는 설정을 설정합니다. 설정을 변경하면 아틀라스를 수정됨으로 표시하고 패키징 단계에서 다시 패킹됩니다.

  3. 아틀라스 팩은 인스펙터의 “팩 미리보기” 버튼을 눌러 미리 볼 수 있습니다. 이는 아틀라스의 패킹을 유발합니다. 패킹이 끝나면 텍스처가 미리 보기 섹션에 나타납니다.

  4. Always Enabled 가 선택됐다면 설정이 수정된 모든 아틀라스가 재생 모드에 진입하기 전에 패킹됩니다.

다운 스케일 배리언트(HD/SD)

다른 스프라이트 아틀라스 에셋을 생성하고 프로젝트에 이미 있는 스프라이트 아틀라스의 배리언트로 선언할 수 있습니다. 그런 다음, 마스터 아틀라스 텍스처를 복사해 멀티플라이어에 따라 크기를 조절합니다.

스프라이트 아틀라스(Sprite Atlas) 배리언트 생성

  1. 스프라이트 아틀라스의 타입을 Variant로 설정합니다.

  2. 아틀라스를 마스터 아틀라스 슬롯에 할당합니다.

  3. 배리언트의 스케일링 팩터를 설정합니다. 값은 0.11 사이로 설정합니다.

  4. 마스터가 아닌 배리언트 아틀라스를 기본으로 바인드하려면 배리언트의 “바인드에 포함” 옵션에 체크하고 마스터에서는 해당 옵션의 체크를 해제합니다.

  5. 둘다 확인하면 둘 중 하나의 아틀라스(master/variant)를 무작위로 포함합니다. 다음에서 언급하는 것과 같이 늦은 바인딩을 하려면 둘다 체크를 해제해야 할 수도 있습니다.

런타임 스프라이트 열거

  1. “SpriteAtlas”를 변수로 갖는 커스텀 컴포넌트를 생성합니다.

  2. 이미 있는 스프라이트 아틀라스를 필드에 할당합니다.

  3. 플레이 모드에 진입하거나 플레이어를 실행합니다.

  4. 변수에 액세스하면 “.GetSprites” 프로퍼티를 호출해 이 아틀라스에 패킹된 스프라이트 어레이를 얻을 수 있습니다.

늦은 바인딩(Binding)

스프라이트는 런타임에 어떤 아틀라스 참조도 없이 팩킹된 상태로 시작할 수 있으며 아틀라스가 바인드될 때까지 공백으로 보입니다. 이 동작의 장점으로는 예를 들어, 에셋 번들이 웹에서 다운로드됐을 때처럼 시작 중에 아틀라스의 소스를 사용할 수 없는 경우 늦은 바인딩을 할 수 있게 해줍니다.

콜백을 사용한 늦은 바인딩(Binding)

  1. 스프라이트가 스프라이트 아틀라스에 패킹되어 있지만 기본으로 바운딩되어 있지 않은 경우(“빌드안에 포함” 옵션이 선택되지 않음)에는 스프라이트가 씬에 보이지 않습니다.

  2. SpriteAtlas.atlasRequested 콜백을 기다릴 수 있습니다.

  3. 이 대리 메서드는 바인딩 되어야 하는 아틀라스의 태그와 SpriteAtlas 에셋을 받는 System.Action을 제공합니다. 어느 방법으로든(스크립트 레퍼런스, Resources.load, 에셋 번들) 에셋을 로드하고 System.Action으로 에셋을 제공할 수 있습니다.


  • 2017–05–26 편집 리뷰 없이 페이지 게시됨

  • Unity 2017.1의 새로운 기능 NewIn20171

스프라이트 마스크
타일맵(Tilemap)