소소한 나의 하루들

2d 플랫포머(5) - 타일맵으로 플랫폼 만들기 본문

개발/유니티

2d 플랫포머(5) - 타일맵으로 플랫폼 만들기

소소한 나의 하루 2024. 1. 23. 23:15

출처: https://youtube.com/playlist?list=PLO-mt5Iu5TeYI4dbYwWP8JqZMC9iuUIW2&feature=shared

 

📚 유니티 기초 강좌

유니티 게임 개발을 배우고 싶은 분들을 위한 기초 강좌

www.youtube.com

#1. 타일 팔레트

지형 오브젝트는 다 지우고, Item / Enemy / Finish 오브젝트는 다 숨김처리한다.

그리고 Project 창에서 TileMap이라는 폴더를 만든다.

(현재 프로젝트>Assets>’TileMap’ 폴더 생성 후 여기에 저장)

 

가장 첫 번째로 만들어야할 것은 Tile Palette이다.

Tile Palette: 타일을 사용하기 위해 모아둔 프리펩

프리펩: 게임 오브젝트를 생성, 설정 및 저장할 수 있으며, 해당 게임 오브젝트의 모든 컴포넌트, 프로퍼티 값, 자식 게임 오브젝트를 재사용 가능한 에셋 프리팹 에셋은 씬에 새로운 프리팹 인스턴스를 만들기 위한 템플릿 역할

Window 메뉴>2D>Tile Palette 클릭

Create New Palette를 클릭해서 ‘Platform Palette라고 이름짓고 TileMap 폴더 안에 생성한다.

그리고 지형 sprite를 다중선택해서 Tile Palette에 드래그 앤 드롭한다.

이것이 타일 팔레트 만드는 방법이다.

팔레트에서 물감을 짜놓고 그것으로 그림을 그리듯이, ‘물감’을 짜놓은 것이라고 생각하면 된다.

Edit을 눌러야 팔레트 수정이 가능하다.

Select(S) : 타일 선택 Move(M) : 타일 이동

깔끔하게 팔레트를 정리한다. 이제 팔레트가 준비가 끝났다.


#2. 타일맵

이제 그림을 그려볼 차례이다.

Hierarchy에서 우클릭>2D Object>Tilemap 클릭한다. 그러면 Grid가 하나 나온다.

TileMap은 타일을 일정하게 깔아두는 컴포넌트이다.

Tilemap을 추가하면, 격자단위로 Scene이 나눠진다.

Scene에 Tilemap을 이용해 그리기 전에 Tile Palette 창에서 Edit을 종료해야한다.

이제 Paint with active brush(B) 도구를 선택해서 Scene에 직접 그릴 수 있다.

 

이렇게 지형만들기가 정말 편해졌다. (드래그도 가능)

이렇게 그린 오브젝트는 전체가 하나의 오브젝트이다.

이제 Collider 컴포넌트는 어떻게 해야할까


#3. 물리 설정

이제 Tilemap 오브젝트에 Tilemap Collider 2D 컴포넌트를 추가한다.

추가하면 Tilemap 오브젝트의 전체 타일에 충돌박스가 생성된다.

+그리고 전에 설정했던 점프 애니메이션을 위해, Tilemap의 레이어도 Platform 레이어로 설정해준다.

 

이제 카메라도 이동시켜준다.

전에는 스크립트 로직을 만들어서 카메라가 플레이어를 따라가도록 했는데, 스크립트 작성없이 할 수는 없을까?

Main Camera 오브젝트를 Player 오브젝트에 집어넣으면 된다.

그리고 z축은 건들지 않고 x축 0 y축 0으로 플레이어에게 좌표를 맞춰준다. (z축은 Player 안쪽에 있는 게임 오브젝트이므로)


#4. 물리 모양 설정

이제 경사지형도 만들어본다.

그리고 실행해보면, 경사로 앞에서 막힌다. 물리 모양은 Sprite Editor에서 편집 가능하다.

왼쪽 위 Sprite Editor>Custom Physics Shape 클릭한다.

 

아무것도 건드리지 않은 상태에서 Generate를 누르면 원래 물리, Physics Shape가 나온다 (현 버전은 해당 cell을 클릭해야 나타난다)

점을 delete하여 지울 수 있다.

물리 조정 후, Tile Palette에서 먼저 삭제하고나서, 물리 모양 편집하는 것이 안전하다.

물리 조정 후에는 꼭 리프레시 작업을 해주는 것이 좋다.

Palette만들기>Tilemap 정리>Tilemap Collider 생성+레이어+Materials 설정>저장 후 실행

Comments