• 게임
  • 산업 분야
  • 리소스
  • 커뮤니티
  • 학습
  • 문의하기
개발
Unity 엔진
모든 플랫폼 위한 2D 및 3D 게임 제작
다운로드플랜 및 가격
수익화
인앱 결제/인앱 구매(IAP)
스토어 간 IAP 검색 및 관리
Mediation
수익 / 매출 극대화 및 수익화 / 수익 창출 최적화(하다)
Ad Quality
앱 유저. '광고 지면'의 타겟 고객 경험 보호
탭조이
장기적인 유저. '광고 지면'의 타겟 고객 충성도 구축
모든 수익화 / 수익 창출 제품
사용자 확보
사용자 확보
모바일 사용자를 검색하고 Acquire
Unity 벡터 AI
적합한 게임으로 플레이어 연결
Aura 디바이스 단위 광고
최대 참여/인게이지먼트 시 기기 내 사용자 도달률
모든 성장 제품
활용 부문
3D 협업
실시간 3D 프로젝트 빌드 및 검토
몰입형 교육
몰입도 높은 환경 제작
고객 경험
인터랙티브 3D 경험 제작
모든 업계 솔루션
산업 분야
제조업
운영 우수성 확보
리테일
상점 경험을 온라인 경험으로 전환
자동차
혁신 및 차량 내 경험 향상
전체 산업 분야
테크니컬 라이브러리
기술 자료
공식 유저. '광고 지면'의 타겟 고객 매뉴얼 및 API 레퍼런스
개발자 툴
릴리스 버전 및 이슈 트래커
로드맵
예정된 기능 검토
용어집
기술 용어 라이브러리
분석 자료
활용 사례
실제 성공 사례
베스트 프랙티스 가이드
전문가 팁
모든 리소스
새로운 기능
블로그
업데이트, 정보, 기술 팁
뉴스
뉴스, 스토리, 보도 센터
커뮤니티 허브
토론
토론, 문제 해결, 소통
이벤트
글로벌 이벤트 및 현지 이벤트
커뮤니티 사례
Made with Unity
Unity 크리에이터 소개
Livestreams
개발자, 크리에이터, Insider와의 소통
Unity Awards
전 세계 Unity 크리에이터 축하
모든 레벨 지원
Unity Learn
무료로 Unity 기술 마스터
전문 교육
Unity 강사와 함께 팀의 역량을 강화하세요
Unity 처음 사용하시나요
시작하기
학습 시작하기
Unity 필수 학습 길잡이
Unity 사용이 처음이신가요? 여정 시작하기
사용법 가이드
실용적인 팁 및 베스트 프랙티스
교육
학생용
커리어 시작하기
교육 담당자 대상 교육
교육 효율 극대화
교육 라이선스
교육 기관에 Unity 강력한 기능 도입
자격증
Unity 숙련도를 입증하세요
지원 옵션
도움 받기
성공을 위한 Unity
Success 플랜
전문가 지원을 통해 더 빠르게 목표 도달률 달성
FAQ
일반적인 질문에 대한 답변
문의하기
유니티 팀과 소통하기
플랜 및 가격
언어
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
소셜
통화
구매
  • 제품
  • 유니티 애즈
  • 구독
  • Unity 에셋 스토어
  • 리셀러
교육
  • 학생
  • 교육 담당자
  • 기관
  • 인증 시험
  • 레벨업 아카데미
  • Skills Development Program
다운로드
  • Unity Hub
  • 다운로드 아카이브
  • 베타 프로그램
Unity Labs
  • Labs
  • Publications
리소스
  • Unity 학습 플랫폼
  • 커뮤니티
  • 기술 자료
  • Unity QA
  • FAQ
  • Services Status
  • 활용 사례
  • Made with Unity
Unity
  • 회사
  • 뉴스레터
  • 블로그
  • 이벤트
  • 채용 정보
  • 도움말
  • Press
  • 파트너
  • 투자자
  • 어필리에이트
  • 보안
  • 소셜 임팩트
  • Inclusion & Diversity
  • 문의하기
Copyright © 2025 Unity Technologies
  • 법적 고지 사항
  • 개인정보처리방침
  • 쿠키
  • 개인정보 판매 또는 공유 금지

'Unity', Unity 로고 및 기타 Unity 상표는 미국 및 기타 국가에서 유니티 테크놀로지스 또는 계열사의 상표 또는 등록상표입니다(여기에서 자세한 정보 확인). 기타 명칭 또는 브랜드는 해당 소유자의 상표입니다.

Hero background image

Unity 타일맵을 통한 2D 게임 성능 최적화

Unity 타일맵을 사용하여 2D 게임 및 모바일 앱의 성능을 향상시키는 팁을 얻으세요. 여기에서 다루는 주제에는 씬 크기, 직렬화, 렌더러 오버헤드 및 배칭이 포함됩니다.
이 웹페이지는 이해를 돕기 위해 기계 번역으로 제공됩니다. 기계 번역으로 제공되는 콘텐츠에 대한 정확도나 신뢰도는 보장되지 않습니다. 번역된 콘텐츠의 정확도에 관해 의문이 있는 경우 웹페이지의 공식 영어 원문을 참고해 주시기 바랍니다.
여기를 클릭하세요.

이 팁은 Unity의 2D 도구 세트에 대한 사전 경험이 있는 사용자에게 가장 유용합니다. 상업용 2D 게임을 Unity로 개발하는 전문 제작자를 위한 또 다른 훌륭한 자료는 우리의 전자책 2D 게임 아트, 조명 및 애니메이션입니다.

Unity로 2D 게임 개발이 처음이라면 신규 사용자를 위한 2D 가이드부터 시작하세요.

  • 일반 성능 팁
  • 타일맵에 대한 간략한 소개
  • 게임 오브젝트 수 줄이기
  • 씬 크기 감소
  • 콜라이더 수 줄이기
  • 렌더링 오버헤드 감소
  • 컬링 비용 감소
  • 배치 콜 감소
  • 더 빠른 프레임 속도
  • 스프라이트 아틀라스로 스프라이트 패킹
  • 2D 게임 제작자를 위한 더 많은 자료
Unity 에디터의 스크린샷
UNITY 2D 프로젝트 LOST CRYPT의 이미지

일반 성능 팁

고려해야 할 몇 가지 일반 성능 팁은 다음과 같습니다:

  • 처음부터 자산(데이터)의 성능에 대해 생각하세요. 이 요소들이 비효율적이라면, 나중에 코드를 최적화할 수 있는 방법이 거의 없습니다.
  • 가장 낮은 사양의 타겟 장치에서 프로필을 작성하세요. 프로젝트 개발 전반에 걸쳐 Unity Profiler를 사용하고, iOS 장치의 경우 Xcode와 같은 플랫폼별 프로파일링 도구를 함께 사용하세요.
  • 가장 낮은 사양의 타겟 장치에서 사용 가능한 RAM의 3분의 1 이상을 사용하지 마세요. 이렇게 하면 저렴한 안드로이드폰이 모바일 시장에서 가장 인기 있는 기기인 다양한 모바일 장치에서 콘텐츠가 원활하게 실행됩니다.

2D 최적화 팁에 대한 더 많은 정보는 다음 리소스를 참조하세요:

  • 훌륭한 2D 팁의 번개 라운드
  • 최적화 전선에서의 이야기
  • Unity의 최적화 기능 알아보기
Lost Crypt 보기
Unity-타일맵을 통해 2D 레벨을 빠르게 생성
타일맵 예제

타일맵에 대한 간략한 소개

타일맵 구성 요소를 사용하면 그리드 오버레이에서 타일을 사용하여 2D 레벨을 효율적으로 생성할 수 있습니다. 여기에는 다음과 같은 여러 요소가 포함됩니다:

  • 타일 클래스
  • 에셋
  • 그리드 구성 요소
  • 타일 팔레트
  • 스크립터블 브러시

스프라이트와 게임 오브젝트의 조합을 사용하여 2D 레벨을 생성하고, 정렬 레이어, 타일맵 콜라이더 및 애니메이션 타일과 같은 속성을 제어할 수 있습니다. 사각형, 육각형, 및 아이소메트릭 스프라이트를 그릴 수도 있습니다.

타일맵으로 레벨을 그려서 타일맵 게임 오브젝트에 적용할 때 타일의 콜라이더 유형 설정에 따라 타일 주위에 콜라이더를 자동 생성하는 타일맵 콜라이더 2D 구성 요소를 사용할 수 있습니다.

타일맵을 사용하여 스프라이트로 구축된 장면과 비교할 때 얻는 성능 향상을 살펴보겠습니다.

오브젝트 수가 적은 타일맵
UNITY 2D 데모 DRAGON CRASHERS의 타일맵

게임 오브젝트 수 줄이기

타일맵을 사용하면 로드 시간과 메모리 및 CPU 사용량이 줄어듭니다.

이전에 2D 게임과 앱을 개발한 적이 있다면, 게임에 많은 수의 스프라이트가 존재할 수 있다는 것을 알고 있을 것입니다. 이 모든 스프라이트는 별도의 게임 오브젝트로 존재합니다. 각 스프라이트 게임 오브젝트에는 메모리를 차지하는 Transform과 Renderer를 포함한 구성 요소가 있습니다. Collider와 같은 다른 구성 요소는 CPU 오버헤드를 동반합니다.

반면, 타일맵은 전체 맵과 모든 타일에 대해 하나의 Renderer를 사용합니다. 이로 인해 여러 메모리 구조를 갖는 것에 비해 오버헤드가 줄어듭니다.

게임 오브젝트가 적으면 더 깔끔한 계층 구조가 형성되어, 필요한 것을 찾기 위해 복잡한 목록을 스크롤할 필요가 없습니다.

Unity-타일맵을 통해 씬 크기 축소
스프라이트(왼쪽)로 생성된 파일과 타일맵(오른쪽)으로 생성된 파일의 비교

씬 크기 감소

Unity 타일맵은 씬 크기를 줄입니다. 게임 오브젝트와 구성 요소가 적으면 디스크에서 로드하고 역직렬화하며 런타임에 메모리에 유지해야 할 객체가 줄어듭니다.

Unity에서 씬을 로드하는 것은 두 단계로 이루어집니다: 먼저, 데이터가 디스크에서 읽혀집니다. 이 과정은 특히 Android 장치에서 게임에서 가장 많은 시간을 소모하는 과정입니다. 그 다음 데이터가 역직렬화됩니다. 역직렬화는 데이터를 한 형식에서 다른 형식으로 변환하는 과정입니다. 본질적으로, 저장된 상태에서 데이터와 객체를 복원합니다. Unity는 내부적으로 직렬화를 수행하여, 씬 파일을 에디터와 런타임에서 로드할 때 저장된 파일을 Unity 객체로 변환합니다.

위 이미지에서는 타일맵을 사용하는 직렬화된 씬 파일과 스프라이트를 사용하여 재생성된 씬 파일 간의 비교를 볼 수 있습니다. 이 장면은 Robbie Swifthand 게임의 Pixel Reign에 감사드립니다.

오른쪽에는 네 개의 타일로 구성된 직렬화된 타일맵의 섹션이 있습니다. 사용된 타일의 유형을 포함한 모든 타일의 규칙은 타일맵의 상단에 설정되어 있습니다. 각 타일은 사용된 타일과 그 위치와 같은 속성을 명시합니다.

왼쪽에는 트랜스폼과 스프라이트 렌더러 컴포넌트가 있는 하나의 스프라이트가 있습니다.

이 비교를 통해 스프라이트 직렬화가 얼마나 많은 작업을 해야 하는지 분명해집니다. 특히, 스프라이트를 사용하는 씬은 파일에 370,000줄이 있는 반면, 타일맵이 있는 씬은 30,000줄입니다. 더 작은 프로젝트와 저장소 크기는 더 빠른 반복 시간과 더 원활한 작업 흐름을 가져옵니다.

자신의 씬을 텍스트 파일로 보려면 에디터 설정으로 가서 에셋 직렬화 모드를 켜고 Force Text를 클릭한 다음 .unity 씬 파일을 텍스트 편집기에서 엽니다.

Unity-타일맵을 통해 콜라이더 수 감소
타일맵 콜라이더 2D와 복합 콜라이더 2D 결합

콜라이더 수 줄이기

타일맵 콜라이더 2D를 복합 콜라이더와 결합할 수 있습니다. 이렇게 하면 콜라이더와 스프라이트의 수가 줄어들 뿐만 아니라, 변경할 때마다 복잡한 충돌 형태를 다시 구축할 필요가 없기 때문에 생산성이 향상됩니다. 복합 콜라이더가 이를 처리합니다.

타일맵 사용 사례
스프라이트 렌더러가 있는 개별 게임 오브젝트와 타일맵의 사용 사례

렌더링 오버헤드 감소

앞서 언급했듯이, 각 스프라이트에는 스프라이트 렌더러 컴포넌트가 있으며, 더 많은 렌더러가 필요하면 CPU의 작업이 더 많아지고, 렌더링을 위한 쿨링 준비 및 정리 시간도 포함됩니다. 타일맵을 사용하면 렌더러 컴포넌트가 줄어들어 CPU의 작업을 절약할 수 있습니다.

컬링 비용 감소

씬에 카메라가 하나 이상 있으면 렌더러가 더 많아집니다. 이로 인해 쿨링 비용이 증가합니다.

카메라 뷰에서는 렌더러당, 카메라당 쿨링 비용이 발생합니다. 모든 카메라는 씬의 모든 렌더러 컴포넌트에 대해 쿨링 검사를 수행해야 하므로, 게임에 다중 카메라 설정이 있는 경우 타일맵을 사용하면 해당 비용을 줄이는 데 도움이 됩니다.

배치 콜 감소
프레임 디버거

배치 콜 감소

배칭은 다른 SetPass 호출을 하지 않고 그릴 수 있는 모든 기하학을 모으는 것입니다. 타일맵 렌더러는 스프라이트의 위치에 따라 기하학을 배칭합니다. 결과적으로 타일맵 렌더러는 스프라이트 렌더러에 비해 더 적은 메시와 더 많은 기하학을 렌더 파이프라인에 보냅니다. 다음 섹션의 표에서 볼 수 있듯이, 타일맵 기반 장면은 배칭이 훨씬 적습니다.

게임 뷰의 통계 패널을 확인하여 배칭을 확인할 수 있습니다. 아이템이 배칭되지 않는 이유를 확인하기 위해 프레임 디버거를 사용할 수도 있습니다.

스프라이트 및 타일맵을 사용하는 장면 표

더 빠른 프레임 속도

60 fps에 도달하려면 각 프레임이 최대 16ms를 렌더링하는 데 걸릴 수 있습니다. 샘플 장면이 오래된 아이폰 7에서 프로파일링되었을 때, 스프라이트 기반 버전은 프레임당 244ms였고, 타일맵 버전은 프레임당 13ms였습니다.

마지막으로, 스프라이트 기반 장면의 RAM 사용량은 1.1GB로, 예를 들어 저사양 안드로이드 폰에는 너무 많습니다. 타일맵 기반 장면은 21MB의 RAM만 사용하여 더 넓은 범위의 모바일 장치에서 실행하기에 적합합니다.

위의 비교는 두 장면 간의 성능 차이를 명확하게 보여줍니다.

스프라이트 아틀라스 데모
드래곤 크래셔에서 스프라이트 아틀라스 사용

스프라이트 아틀라스로 스프라이트 패킹

스프라이트 아틀라스는 메모리 사용량과 드로우 호출을 최적화하기 위해 텍스처에 스프라이트를 패킹할 수 있는 에디터 도구입니다. 타일맵에서 사용되는 모든 스프라이트를 포함하는 스프라이트 아틀라스 자산을 생성하여 타일맵 렌더러가 단일 드로우 호출로 배칭할 수 있도록 합니다(모든 스프라이트가 단일 텍스처에 맞는 한).

2D 게임 제작자를 위한 더 많은 자료

2D 기술 향상: 우리 블로그 읽기 목록은 2D 게임 개발을 위한 유용한 팁을 제공합니다.

아티스트를 위한 2D 게임 아트, 애니메이션 및 조명: 이 무료 전자책은 Unity의 2D 도구 세트를 최대한 활용하기 위한 모범 사례를 제공합니다.

2D 도구 개요: Unity가 2D 개발자에게 제공하는 내용을 간편하게 살펴보세요.

타일맵을 이용한 절차적 패턴 – 1부 및 2부: 절차적 생성을 통해 게임에 다양성을 추가하세요. 이 게시물에서는 타일맵과 룰타일과 함께 사용할 수 있는 알고리즘을 설명합니다.