Version: Unity 6.0 (6000.0)
언어 : 한국어
2D 게임용 프로젝트 설정
2D 게임 원근 레퍼런스

2D 게임 제작 워크플로

2D 게임을 제작하려면 먼저 게임 시점아트 스타일을 정해야 합니다.

2D 게임을 제작하려면 Unity 프로젝트를 설정한 다음 관련 개념을 다음 순서대로 숙지하십시오.

  1. 기초

  2. 스크립팅

  3. 스프라이트

  4. 게임 내 환경 빌드

  5. 캐릭터 애니메이션

  6. 그래픽스

  7. 물리 2D

  8. 오디오

  9. 사용자 인터페이스

  10. 프로파일링, 최적화, 테스트

  11. 퍼블리싱

기초

게임 오브젝트는 캐릭터, 프랍(prop), 풍경 등을 나타내는 Unity의 기본 오브젝트입니다. 게임 내의 모든 오브젝트를 게임 오브젝트라고 합니다.

게임 오브젝트는 게임 내 아이템을 나타내며, 이를 배치하여 레벨을 구성하는 공간을 이라고 합니다. Unity의 씬은 항상 3D입니다. Unity에서 2D 게임을 제작할 때는 보통 3차원(z축)을 무시하지만, 예를 들어 2.5D 게임을 제작할 때처럼 특수한 경우에도 3차원을 사용할 수 있습니다.

게임 오브젝트의 동작은 컴포넌트라는 기능 블록에 의해 정의됩니다. 다음 컴포넌트는 2D 게임의 기본 요소입니다.

  • Transform: Transform 컴포넌트는 씬에 있는 각 게임 오브젝트의 Position, Rotation, Scale을 결정합니다. 모든 게임 오브젝트에는 트랜스폼이 있습니다. 모든 게임 오브젝트에 Transform 컴포넌트가 있습니다.
  • Sprite Renderer: Sprite Renderer 컴포넌트는 스프라이트를 렌더링하고 씬에서 표시되는 모습을 제어합니다.
  • Cameras: 월드를 캡처하고 플레이어에게 표시하는 기기입니다. 카메라를 Orthographic으로 설정하면 카메라의 뷰에서 모든 원근감이 없어집니다. 아이소메트릭 게임이나 2D 게임을 제작하는 데 특히 유용합니다.
  • Collider 2D: 이 컴포넌트는 물리적 충돌에 사용할 2D 게임 오브젝트의 형태를 정의합니다. 2D 물리를 참조하십시오.

컴포넌트는 C# 클래스를 UI로 나타낸 것입니다. 스크립트를 사용하여 컴포넌트를 변경하고 컴포넌트와 상호 작용하거나 새 컴포넌트를 만들 수 있습니다. 자세한 내용은 스크립팅 섹션을 참조하십시오.

스크립팅

모든 2D 게임에는 스크립트가 필요합니다. 스크립트는 플레이어의 입력에 응답하여 게임플레이의 이벤트가 적시에 발생하게 합니다.

Unity에서 스크립트를 사용하는 방법에 대한 자세한 내용은 스크립팅 개요를 참조하십시오. Unity Learn 초급 스크립팅 교육 과정도 참조하십시오.

스크립트는 게임 오브젝트와 연결되어 있으며, 생성한 스크립트는 모두 MonoBehaviour 클래스를 상속합니다.

스프라이트

스프라이트는 2D 그래픽 오브젝트입니다. 모든 유형의 2D 게임에 스프라이트를 사용합니다. 예를 들어 메인 캐릭터 이미지를 스프라이트로 임포트할 수 있습니다.

캐릭터 스프라이트
캐릭터 스프라이트

스프라이트 컬렉션을 사용하여 캐릭터를 만들 수도 있습니다. 이렇게 하면 캐릭터의 움직임과 애니메이션을 더 잘 제어할 수 있습니다.

캐릭터를 구성하는 여러 개의 스프라이트가 스프라이트 에디터에 표시된 모습
캐릭터를 구성하는 여러 개의 스프라이트가 스프라이트 에디터에 표시된 모습

스프라이트 임포트 및 설정

Unity의 권장 설정을 사용하여 스프라이트를 임포트합니다. 스프라이트 임포트 및 설정을 참조하십시오.

스프라이트 렌더링

Sprite Renderer 컴포넌트를 사용하여 스프라이트를 렌더링합니다. 예를 들어 스프라이트 렌더러를 사용하여 스프라이트의 컬러와 불투명도를 변경할 수 있습니다.

스프라이트 렌더러를 사용하여 스프라이트 컬러 조절
스프라이트 렌더러를 사용하여 스프라이트 컬러 조절

스프라이트 렌더러 소개 Learn 튜토리얼을 참조하십시오. 스프라이트를 레이어로 배치하여 정렬하면 입체감이 있는 것처럼 표현할 수 있습니다. 다양한 전략에 따라 스프라이트를 정렬할 수 있습니다. 자세한 내용은 스프라이트 정렬을 참조하십시오. 예를 들어, 위쪽에 있는 스프라이트가 아래쪽에 있는 스프라이트 뒤에 정렬되도록 y축을 따라 스프라이트를 정렬하여 위쪽에 있는 스프라이트가 아래쪽에 있는 스프라이트보다 더 멀리 있는 것처럼 보이도록 할 수 있습니다.

y축을 따라 정렬된 스프라이트
y축을 따라 정렬된 스프라이트

스프라이트의 오버레이 순서를 설정하려면 레이어 정렬을 사용하십시오.

스프라이트 렌더러를 사용하여 게임 오브젝트를 그룹화하고, 게임 오브젝트가 스프라이트를 렌더링하는 순서를 제어하려면 그룹 정렬을 사용하십시오.

스프라이트 아틀라스

스프라이트 아틀라스를 사용하여 여러 텍스처를 결합된 하나의 텍스처로 통합할 수 있습니다. 이렇게 하면 게임을 최적화하고 메모리를 절약할 수 있습니다. 예를 들어 특정 캐릭터 또는 목적과 관련된 모든 스프라이트를 스프라이트 아틀라스에 추가할 수 있습니다.

스프라이트 아틀라스
스프라이트 아틀라스

스프라이트 아틀라스 소개 Learn 튜토리얼을 참조하십시오.

게임 내 환경 빌드

환경 디자인은 게임의 레벨과 환경을 만드는 프로세스를 말합니다. 이 섹션의 환경 디자인 툴을 게임에 가장 적합하게 조합할 수 있습니다. 예를 들어, 9슬라이스만 사용하여 탑다운 게임을 만들거나 타일맵과 스프라이트 셰이프를 사용하여 사이드온 플랫폼 게임을 만들 수도 있습니다.

9슬라이싱

9슬라이싱은 여러 에셋을 준비하지 않고도 다양한 크기의 이미지를 재사용할 수 있는 2D 기법입니다. Unity는 스프라이트의 지정된 부분을 동적으로 늘리고 타일링하여 하나의 스프라이트를 크기가 다양한__ UI__(사용자 인터페이스) 사용자가 애플리케이션과 상호 작용하도록 해 줍니다. Unity는 현재 3개의 UI 시스템을 지원합니다. 자세한 정보
See in Glossary
요소의 테두리나 배경으로 사용할 수 있습니다. 9슬라이싱 스프라이트를 참조하십시오.

예를 들어, 2D 레벨을 빌드할 때 9슬라이싱 기법으로 스프라이트를 셰이프에 맞춰 스트레치할 수 있습니다.

9개의 섹션으로 분할된 9슬라이스 스프라이트
9개의 섹션으로 분할된 9슬라이스 스프라이트

확장 가능한 스프라이트용 9슬라이싱 사용법 Learn 튜토리얼을 참조하십시오.

타일맵

Tilemap 컴포넌트는 2D 레벨을 만들기 위해 타일 에셋을 저장하고 처리하는 시스템입니다. 타일맵을 사용하려면 2D Tilemap Editor 패키지(기본적으로 설치됨)를 사용합니다.

예를 들어, 타일맵을 사용하여 레벨을 색칠할 수 있습니다. 이를 위해서는 타일과 브러시 툴을 사용하고 타일의 작동을 제어하는 규칙을 정의합니다.

타일맵 편집에 사용되는 Tile Palette 창
타일맵 편집에 사용되는 Tile Palette 창

타일맵 소개 Learn 튜토리얼을 참조하십시오.

2D 타일맵 엑스트라

프로젝트에 타일맵 에셋을 추가하려면 2D Tilemap Extras 패키지를 설치합니다. 이 패키지에는 자체 프로젝트에 활용할 수 있는 재사용 가능한 2D 및 타일맵 에디터 스크립트가 포함되어 있습니다. 스크립트의 동작을 커스터마이즈하여 다양한 시나리오에 적합한 새 브러시를 생성할 수 있습니다.

아이소메트릭 타일맵

아이소메트릭 시점이 사용된 게임의 경우, 아이소메트릭 타일맵을 생성할 수 있습니다.

스프라이트 셰이프

스프라이트 셰이프를 통해 벡터 그리기 툴과 비슷한 방식으로 유기체처럼 보이는 랜드스케이프 및 경로 같은 대형 스프라이트를 유연하게 만들 수 있습니다. 스프라이트 셰이프 프로파일을 참조하십시오.

스프라이트 셰이프에 생성된 경로
스프라이트 셰이프에 생성된 경로

스프라이트 셰이프 작업 튜토리얼을 참조하십시오.

캐릭터 애니메이션

세 가지 방법으로 2D 캐릭터를 애니메이션화할 수 있습니다.

2D 애니메이션 유형 용도
프레임 바이 프레임 게임에 고전 애니메이션 아트 스타일을 적용하려는 경우에 예술적인 이유로 사용합니다. 프레임 바이 프레임 애니메이션은 제작 및 실행할 때 모두 상대적으로 많은 리소스를 소모합니다.
컷아웃 부드러운 골격 애니메이션이며 캐릭터를 사실적으로 묘사할 필요가 없는 경우 사용합니다.
골격 스프라이트가 뼈대 구조에 따라 휘어지는 부드러운 골격 애니메이션입니다. 캐릭터에 더 유기적인 느낌이 필요한 경우에 사용합니다.

프레임 바이 프레임

프레임 바이 프레임 애니메이션은 애니메이션의 모든 순간을 개별 이미지로 그린 다음 마치 플립북의 페이지를 넘기듯이 빠른 시퀀스로 재생하는 전통적인 셀 애니메이션 기법에 기반합니다.

프레임 바이 프레임 애니메이션을 제작하려면 프레임 바이 프레임 애니메이션 워크플로를 따르십시오.

스프라이트 에디터의 프레임 바이 프레임 애니메이션
스프라이트 에디터의 프레임 바이 프레임 애니메이션

스프라이트 애니메이션 소개 Learn 튜토리얼을 참조하십시오.

컷아웃

컷아웃 애니메이션에서 여러 개의 스프라이트는 캐릭터의 바디를 구성하며, 각 부분이 움직여 캐릭터 전체가 움직이는 시각적 효과를 줍니다. 이 애니메이션 스타일은 스프라이트가 구부러지지 않는다는 점을 제외하고 골격 애니메이션과 유사합니다(아래 참조).

스프라이트 에디터의 컷아웃 애니메이션
스프라이트 에디터의 컷아웃 애니메이션

골격

골격 애니메이션을 사용하면 스프라이트 또는 스프라이트 그룹을 애니메이션 골격에 매핑할 수 있습니다. 캐릭터와 오브젝트에 대한 애니메이션 뼈대를 생성하고 정의하여 구부러지고 움직이는 방식을 정의할 수 있습니다. 이 방법을 사용하면 스프라이트의 뼈대를 구부리고 변형하여 더 자연스럽게 움직이도록 연출할 수 있습니다. 골격 애니메이션을 사용하려면 2D Animation 패키지(기본적으로 설치됨)를 사용해야 합니다.

뼈대 에디터 작업 가이드를 비롯한 2D 애니메이션 워크플로에 대한 내용은 2D 애니메이션 기술 자료를 참조하십시오.

뼈대 에디터에 표시된 뼈대가 있는 캐릭터
뼈대 에디터에 표시된 뼈대가 있는 캐릭터

그래픽스

이 섹션에서는 URP(유니버설 렌더 파이프라인)를 사용할 때 이용할 수 있는 2D URP 그래픽 기능에 대해 설명합니다.

조명

2D 렌더러를 선택한 상태로 URP를 사용하면 Light 2D 컴포넌트를 통해 최적화된 2D 조명을 스프라이트에 적용할 수 있습니다. 자세한 내용은 광원 2D 소개를 참조하십시오.

이 두 이미지는 동일한 씬을 보여 주는데, 왼쪽 이미지에서는 2D 광원이 비활성화되어 있고 오른쪽 이미지에서는 2D 광원이 활성화되어 있습니다. 2D 광원을 사용하면 동일한 스프라이트를 통해 날씨나 분위기가 다르게 보이도록 만들 수 있습니다.
이 두 이미지는 동일한 씬을 보여 주는데, 왼쪽 이미지에서는 2D 광원이 비활성화되어 있고 오른쪽 이미지에서는 2D 광원이 활성화되어 있습니다. 2D 광원을 사용하면 동일한 스프라이트를 통해 날씨나 분위기가 다르게 보이도록 만들 수 있습니다.

URP의 조명 Learn 튜토리얼을 참조하십시오.

그림자

드리우는 그림자를 결정하기 위해 광원이 사용하는 형태와 프로퍼티를 정의하려면 Shadow Caster 2D 컴포넌트를 사용하십시오.

Shadow Caster 2D 컴포넌트의 그림자 강도 0.5
Shadow Caster 2D 컴포넌트의 그림자 강도 0.5

개선된 디자인(look and feel)

파티클 시스템과 포스트 프로세싱을 사용하여 게임 외형의 완성도를 높일 수도 있습니다.

파티클 시스템

스프라이트를 사용하는 대신 파티클 시스템을 사용하면 불, 연기, 액체 같은 동적 오브젝트를 생성할 수 있습니다. 스프라이트는 물리적 오브젝트에 더 적합합니다. 파티클 시스템을 참조하십시오.

파티클 시스템과 2D용 Shader Graph로 만든 불 효과
파티클 시스템과 2D용 Shader Graph로 만든 불 효과

포스트 프로세싱

포스트 프로세싱 효과와 전체 화면 효과를 사용하여 게임의 외형을 크게 개선할 수 있습니다. 예를 들어 이러한 효과를 사용하여 물리적 카메라 또는 필름 프로퍼티를 시뮬레이션하거나 스타일이 적용된 비주얼을 만들 수 있습니다.

URP에는 고유한 포스트 프로세싱 구현 기능이 있습니다. 유니버설 렌더 파이프라인의 포스트 프로세싱을 참조하십시오.

블룸 및 비네트 포스트 프로세싱 효과가 사용된 Lost Crypt 데모
블룸 및 비네트 포스트 프로세싱 효과가 사용된 Lost Crypt 데모

물리 2D

물리 2D 설정은 2D 게임의 물리적 시뮬레이션 정확도에 대한 제한을 정의합니다. 2D 물리를 참조하십시오.

동영상은 Unity 2020.1의 2D 물리 기능에 대한 개요를 제공합니다.

Unity의 2D 물리 엔진을 사용하는 방법은 2D 물리 Learn 튜토리얼을 참조하십시오.

다음은 2D 게임에 유용한 2D 물리 툴입니다.

리지드바디 2D

Rigidbody 2D 컴포넌트는 게임 오브젝트를 물리 엔진의 통제 하에 둡니다. 리지드바디 2D를 참조하십시오.

Rigidbody 2D 컴포넌트
Rigidbody 2D 컴포넌트

콜라이더 2D

Collider 2D 컴포넌트는 물리적 충돌에 사용할 2D 게임 오브젝트의 형태를 정의합니다. 입력 감지에 Collider 2D 컴포넌트를 사용할 수도 있습니다. 예를 들어 모바일 게임에서는 이를 사용하여 스프라이트를 선택 가능하게 만들 수 있습니다.

리지드바디 2D와 함께 사용할 수 있는 콜라이더 2D 유형은 다음과 같습니다.

Circle Collider 2D 컴포넌트
Circle Collider 2D 컴포넌트

트리거

콜라이더 2D를 트리거로 설정하면(해당 Is Trigger 프로퍼티 활성화) 더 이상 물리적 오브젝트로 작동하지 않으며, 충돌하지 않고 다른 콜라이더와 교차할 수 있습니다. 대신 콜라이더가 해당 공간에 진입하면 Unity는 트리거 게임 오브젝트의 스크립트에서 OnTriggerEnter 함수를 호출합니다.

Is Trigger가 선택된 Circle Collider 2D 컴포넌트
Is Trigger가 선택된 Circle Collider 2D 컴포넌트

2D 조인트

조인트는 여러 게임 오브젝트를 연결합니다. Rigidbody 2D 컴포넌트가 연결된 게임 오브젝트나 월드 공간의 고정된 위치에만 2D 조인트를 연결할 수 있습니다. 2D 조인트를 참조하십시오.

2D 이펙터

게임 오브젝트 콜라이더가 서로 접촉할 때 Collider 2D 컴포넌트와 함께 Effector 2D 컴포넌트를 사용하여 씬의 물리적인 힘을 지정할 수 있습니다. 2D 이펙터를 참조하십시오.

오디오

Unity에서 게임에 배경 음악과 음향 효과를 추가할 수 있습니다. 오디오 개요를 참조하십시오. 타사 소프트웨어를 사용하여 오디오를 생성하고 권장 설정으로 Unity로 임포트할 수 있습니다.

사용자 인터페이스

게임에 메뉴나 도움말을 추가하려면 사용자 인터페이스를 설정해야 합니다. 사용자 인터페이스를 설정하려면 Unity UI를 사용합니다.

빌드 프로파일링, 최적화, 테스트

프로파일링

프로파일링을 사용하면 게임의 다양한 부분에서 얼마나 많은 리소스를 소모하는지 확인할 수 있습니다. 항상 타겟 릴리스 플랫폼에서 게임을 프로파일링해야 합니다. 애플리케이션 프로파일링을 참조하십시오.

최적화

프로파일링 후에는 결과를 활용하여 성능을 개선하고 최적화할 수 있습니다. Unity 최적화에 대한 이해를 참조하십시오.

테스트

Unity 테스트 프레임워크를 사용하여 게임과 코드를 테스트합니다. Unity 테스트 프레임워크를 참조하십시오.

Test Runner 창
Test Runner 창

퍼블리싱

게임을 완성하면 퍼블리시할 준비가 됩니다. 빌드 퍼블리시를 참조하십시오.

2D 게임용 프로젝트 설정
2D 게임 원근 레퍼런스
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961