본문 바로가기

GAME

[Unity2D] 타일맵 Platform 만들기

728x90

[유니티 기초 - B17]타일맵으로 플랫폼 만들기 

 

여태까지는 1x1크기의 블럭을 하나하나 조작해 주었는데

이제 타일맵이라는 개념을 사용하면 그렇게 하지 않아도 된다고 합니다. 

 

 

시작하기 전단계

먼저 타일맵을 사용하기 위해 맵지형을 다 없애고 나머지는 불필요해서 일단 비활성화 해두었습니다 

체크 해제해주시면 비활성화 됩니다.

 

 

그런 다음  Assets에 TitleMap 폴더를 하나 만들어 주세요 

 

타일 팔레트(Tile Palette)

: 타일을 사용하기위해 모아둔 프리펩 / 타일맵을 사용하기 위한 준비단계

Window -> 2D -> Tile Palette

Tile Palette

 

Create New Palette -> 팔레트이름을 정하고(Platform Palette) -> 아까 만들어준 폴더로 저장위치를 지정해주면 

새로운 팔레트가 생겨납니다.

 

이제 팔레트에 Platform과 관련된 스프라이트를 업로드 합니다.

원하는 타일맵 스프라이트(텍스쳐)들을 드래그한 후 저장위치는 타일맵폴더로 해주시면됩니다.

 

 

그럼 이렇게 팔레트에 업로드가 완료되었습니다.

 

 

팔레트를 보기좋게 정리할 수 있습니다.

Edit 를 눌러주신 후 (Edit 켜기) 

를 이용하여 원하는 플랫폼 이미지를 선택한 후 (S)

를 이용하여 해당 플래폼 이미지를 옮길 수 있습니다. (M)

원하는대로 이동을 마치셨으면 Ctrl + S로 저장해주시면 됩니다.

정리를 마쳤습니다. 마치면 Edit를 꺼주세요 

이제 본격적으로 타일맵을 이용할 준비가 끝났습니다.

 

 

타일맵 

Hierarchy -> 2D Object -> Tilemap

Tilemap 오브젝트 : 타일을 일정하게 깔아두는 컴포넌트 

 

이렇게 격자무늬가 마우스 커서를 올릴때마다 활성화??처럼 되는 것을 볼 수 있습니다(캡쳐가 안되네요..)

 

팔레트에서 붓 아이콘을 누르고

맵에 그리고싶은 지형을 클릭 한 후 

그리드에 가져다 대면

 

커서를 둔 곳에 그림이 그려지듯 지형이 그려지는 모습을 볼 수 있습니다

이제 팔레트를 이용하여 편하게 지형을 그릴 수 있게 되었습니다.

 

이제 마음대로 지형을 그려봅시다

지형을 다 그렸습니다

이제 실행해보면 Collider가 적용되지 않아 캐릭터가 지형 밑으로 빠지는 모습을 볼 수 있습니다. 

 

중요한건 Grid라는 "하나의 오브젝트"로 타일맵이 구성되어 있습니다. 

 

물리설정 

 

일단 Collider를 추가해봅시다 

Grid밑에 Tilemap에다가 Tilemap Collider 2D를 추가하면,

자동으로 적절하게 Collider가 생성되었네요

 

이제 플랫폼 밑으로 빠지지 않게 되었습니다.

 

 

 

+) 카메라 플레이어 안에 종속시키기

카메라를 플레이어 안에 종속시키면 카메라가 알아서 플레이어에 움직임에 맞추어 이동하게 됩니다.

Main Camera를 Char로 드래그 해서 종속시켜주세요 

 

그리고 카메라의 좌표를 캐릭터에 맞게 설정해주셔야 합니다 (z축은 건들이면 안됨)

 

이제 카메라가 플레이어를 따라 이동합니다.

 

 

물리 모양 설정 (Spirte Physics Shape) 

근데 우리의 지형중에 올라갈수 없는 지형이 있습니다.

바로 오르막 / 내리막 지형인데 그 이유는 collider 경계를 잘 살펴보시면 

 

실제 도트 그림과 다르게 콜라이더가 조금 더 크게 설정되어 있는 것을 볼 수 있는데 바로 이때문에 올라갈 수 없습니다

 

콜라이더는 경계를 정할때 Physic sprite라는 물리 스프라이터를 기준으로 그려지는데 이를 변경해주어야합니다.

물리 스프라이터는 Sprite Editor에서 편집가능합니다.

 

Project -> Assets -> 원하는 아틀라스 클릭 -> Inspector -> Sprite Editor 

 

 

Sprite Editor를 켜신 후 

Sprite Editor를 Custom Physics Shape로 변경해주세요

 

원하는 모양을 먼저 클릭 한 후 Generate를 누르면 다음과 같이 물리 경계가 나타나게 됩니다

이제 네모를 이용해서 자신이 원하는대로 조절해줍시다

 

 

도트 크기가 작을 수록 이런 현상이 많이 발생한다고 합니다

 

다른 스프라이트 텍스쳐들의 Physics Shape들도 수정해줍니다  이것이 콜라이더라고 생각하고 얼마나 여유를 줄지 등을

본인이 스스로 결정하여 해주면됩니다

 

완료되면 Apply버튼을 눌러 적용합니다

 

 

이제 문제가 되었던 블록들을 타일맵(지우개 툴 D로)에서 지워줍니다.

 

타일맵 팔레트에서도 삭제해주세요 

 

그 후 같은 방법을 이용하여 타일맵으로 다시 불러옵니다.

 

그다음에 다시 그려준 후 

 

 

콜라이더를 확인해보면 우리가 수정해준 대로 깔끔하게 수정된 것을 볼 수 있습니다!

 

 

여기서 끝인데 실행하기 전에 전 게시글에 써놓은 "맵 Floor의 물리적 성질" 또한 타일맵에 적용시켜주어야 합니다

 

1) 만들어두었던 Physical Material을 TileMap의 Collider 2D ->Material에 적용 

 

 

2) 만들어둔 Platform레이어 적용

 

 

이제 완성되었습니다

 

그래도 경사가 안올라가지시는 분은 이동할때 addForce에 더 큰 숫자를 곱하여 가해지는 힘의 크기를 늘리거나

플레이어의 콜라이더를 캡슐콜라이더로 변경하여 뭉뚝하게 변형해주시면 해결된다고 합니다.

 

 

<참고영상>

youtu.be/f8ixw9IpnD8

 

728x90