Unity 스프라이트 패커 사용 안내
개요
Unity에서 2D 게임을 개발할 때, 다양한 스프라이트를 효과적으로 관리하기 위해 스프라이트 아틀라스를 사용하는 것이 좋습니다. 스프라이트 패커(Spr Sprite Packer)는 여러 개의 스프라이트 텍스처를 하나의 아틀라스로 패킹하여 메모리 사용을 최적화하고 성능을 향상시킵니다.
스프라이트 패커의 필요성
- 각 캐릭터를 위해 별도의 텍스처 파일을 사용하면 비디오 메모리가 낭비됩니다.
- 여러 스프라이트를 아틀라스라는 단일 텍스처로 통합함으로써 성능 최적화가 가능해집니다.
- 스프라이트 패커는 스프라이트 텍스처를 자동으로 아틀라스에 패킹하는 기능을 제공합니다.
스프라이트 패커 사용법
스프라이트 패커 활성화
- 에디터에서
Edit > Project Settings
로 이동합니다. Editor
카테고리에서 패킹 모드를 설정합니다:- Disabled: 비활성화
- Enabled for Builds: 빌드에만 사용
- Always Enabled: 플레이 모드와 빌드 모두에서 활성화
아틀라스 생성
Window > 2D > Sprite Packer
를 열어 봅니다.- 좌측 상단의 Pack 버튼을 클릭하여 패킹 작업을 수행합니다.
- 아틀라스 페이지와 패킹 정책을 설정하여 아틀라스를 구성합니다.
패킹 정책
패킹 정책은 스프라이트를 아틀라스에 어떻게 배치할지를 결정합니다. - Default Packer Policy: 기본 사각 패킹 사용 - Tight Packer Policy: 스프라이트 메시가 치밀하게 맞춰질 때 사용하는 정책 - Tight Rotate Enabled Sprite Packer Policy: 스프라이트 회전 활성화
커스텀 패킹 정책
필요시 커스텀 패킹 정책을 구현하여 보다 세부적인 컨트롤이 가능합니다. - UnityEditor.Sprites.IPackerPolicy 인터페이스를 사용하여 패킹 로직을 정의합니다. - 기본 패킹 정책을 오버라이드하여 원하는 방식으로 스프라이트를 패킹할 수 있습니다.
샘플 코드
아래는 기본적인 패킹 정책 예시입니다.
using System;
using UnityEngine;
using UnityEditor;
public class DefaultPackerPolicySample : UnityEditor.Sprites.IPackerPolicy
{
// 패킹 정책에 따른 스프라이트 배열 및 설정
}
Tight Packer 예제
using UnityEngine;
using UnityEditor;
class TightPackerPolicySample : DefaultPackerPolicySample
{
// Tight Packer의 특정 동작을 정의
}
Tight Rotate Enabled Packer 예제
using UnityEngine;
using UnityEditor;
class TightRotateEnabledSpritePackerPolicySample : DefaultPackerPolicySample
{
// 회전 가능한 Tight Packer의 동작을 정의
}
유용한 팁
- 패킹이 완료된 아틀라스는
Project/Library/AtlasCache
에 저장됩니다. - 성능 최적화를 위해 텍스처 크기를 제한하고 적절한 압축 형식을 사용합니다.
마무리
스프라이트 패커는 Unity에서 2D 게임을 개발할 때 효과적으로 그래픽 자원을 관리할 수 있는 중요한 도구입니다. 다양한 설정 및 정책을 활용하여 게임의 성능을 최대한 끌어올리시기 바랍니다.