Tile map
사진처럼 격자무늬(Grid)에 따라 맵을 만드는 것이다.
사진 파일에서 칸을 나누어 그리는 방법을 쓴다.
원하는 것을 Asset스토어 등에서 찾아보자
게임 관련 자료 찾기
https://lektion-von-erfolglosigkeit.tistory.com/61
- Asset Store의 Sunny Land 에셋
https://assetstore.unity.com/packages/2d/characters/sunny-land-103349
- 참고 영상의 타일맵
drive.google.com/drive/folders/15BW3RzbyPl2-TQYNitfmLo2JuBS4OOuB?usp=sharing
Unity 타일맵으로 맵 그리기
Tileset Import
원하는 Tileset를 유니티의 Project에 드래그한다.
해당 파일을 클릭하고 다음과 같이 변경한 후 Apply 클릭
(Pixel Per Unit은 사용하는 Sprite의 크기에 따라 다를 수 있습니다.)
Tile Slice
Sprite Editor를 클릭하여 Sprite Editor 창을 연다.
Slice▼를 클릭하고 설정을 다음과 같이 바꾼 뒤 Slice를 클릭하면 오른쪽 사진과 같이 흰색 줄이 생긴다.
(Pixel Size는 사용하는 Sprite의 크기에 따라 다를 수 있습니다.)
Tile Palette
우리가 그림을 그릴때 팔레트에 색을 미리 짜놓는 것처럼 유니티에서도 팔레트에 미리 스프라이트를 만들어 둔다.
먼저 Tile Palette와 Tile Set를 저장할 폴더를 만들자.
대충 적당히 만들어도 상관없다.
Window - 2D - Tile Palette를 클릭하여 Tile Palette 창을 열고 적당한 곳에 위치시킨다.
Tile Palette창의 Create New Palette를 클릭하고 Name를 변경하고 Create를 클릭한다.
Tileset를 Tile Palette에 드래그한다.
폴더를 선택하면 로딩이 되고 로딩이 끝나면 Tile Palette에 Tile이 보여진다.
Tile Palette 도구 설명

- Brush: 타일을 그리는 도구


- Select: 타일 선택 도구, 선택한 타일은 이동시킬 수 있다.


- Move: 타일 이동 도구, Select로 선택한 타일을 이동시킨다.


- ???: 사각형 모양으로 채우기, 정식명칭을 모르겠다. 단축키는 U


- pipette: 스포이드 도구, 단축키는 I

- Eraser: 지우개 도구, 단축키는 D

- painter: 채우기 도구, 감싸져 있는 부분을 채울 때 사용, 단축키는 G

- Shift + 그리기 도구: 해당 타일을 지운다.
- [ , ]: 각각 반시계방향, 시계방향으로 타일을 회전시킨다.
- Shift + [ , ]: 각각 y축, x축을 기준으로 타일을 반전시킨다.
Tile Map
이제 드디어 맵을 그릴 수 있다.
도구들을 이용해 적당히 맵을 그려보자. (이후에 벽점프 등을 만들어야하니 유의)
다음은 배경과 나무, 꽃 같은 것들을 추가해보자
Sorting Layers
배경과 장식물들은 Platforms과는 다른 레이어에 그려야 수정하기 편할 것이다.
먼저 Hierarchy에 Grid에 새로운 타일맵을 추가하고 이름을 Background로 변경한다.
이후 Tile Palette에 가보면 Active Tilemap에 Background가 추가되었다.
하지만 Background를 선택하고 그냥 그리면 Platforms가 가려진다.
해결하기 위해 Hierarchy에서 Platforms를 선택하고
Inspector창의 Tilemap Renderer - Additional Settings - Sorting Layer - Add New Sorting Layer... 클릭
Background와 Platforms를 추가하고 적용시킨다. (필요에 따라 Decortaion 등을 추가)
적용시키면 Layer가 적용되고 Background가 가리는 문제를 해결할 수 있다.
Rigidbody&Colliders
지금까지 만든 맵은 아직 그리기만 했고 플레이어가 밟지 못한다.
다음 글에서 만들 플레이어가 땅을 딛고 서있을 수 있게 만들어야 한다.
Hierarchy에서 Platforms를 선택, Rigidbody2D, Tilemap Collider2D를 추가한다.
또한 중력에 의해 떨어지지 않게 Rigidbody2D의 BodyType를 Static으로 변경한다.
Scene 뷰를 보면 각각의 타일 하나하나에 Collider가 추가되어있는데
굳이 그럴 필요 없이 외곽선(테두리)만 Collider가 있으면 땅을 딛고 서있을 수 있다.
Platform에 Composite Collider 2D를 추가하고 Tilemap Collider 2D의 Used by Composite를 체크
깔끔하게 외곽선에만 Collider가 적용되었다.
마무리
이렇게 간단하게(?) Tilemap를 만들어보았다.
다음 글에서는 플레이어를 간단한 움직임(이동, 점프)을 구현해보겠다.
'중단된 프로젝트 > 2D Platformer' 카테고리의 다른 글
Unity 2D 플랫포머 만들기(2) - 플레이어 이동, 점프 (0) | 2020.09.04 |
---|---|
Unity 2D 플랫포머 만들기 (0) 프로젝트 개요 (0) | 2020.09.04 |