[Unity]11.타일맵을 이용한 2D 게임제작 #2 - 타일맵 충돌처리

안녕하세요 유랑입니다.



타일맵을 이용한 2D 게임제작을 진행해 보도록 하겠습니다.

지난시간에는 타일맵 생성과 팔레트에 대해서 알아보았습니다.

이번시간에는 타일맵의 충돌처리 방법에 대해 배워보겠습니다.




1. 타일맵 충돌처리



1-1) 배경 생성



캐릭릭터가 점프할 수 있도록, 바닥을 만들어 보겠습니다.

Edit를 체크해 주면 타일을들 지울수 있습니다.

저번 시간에 생성했던 타일들을 지우고, Grass Tile들을 받아주세요.

Grass Tile도 마찬가지로 Multiple을 통해서 타일을 나눠주겠습니다.

해당 타일의 크기가 64 X 64이기 때문에 Pixels Per Unit을 다음과 같이 설정하였습니다.








타일들을 팔레트에 드래그앤드랍을 통해서 옮겨 주세요.





Edit를 체크해 주고 지우개를 이용해 해당 타일을 지울 수 있습니다.





다음과 같이 지형을 만들어 주세요.






1-2) Tilemap Collider 2D 추가



충돌처리를 하려면 Collider가 필요하겠죠?

Tilemap 전용 콜라이더를 컴포넌트 시켜줍시다.







Collider를 추가하게 되면 타일들마다 Collider가 적용됩니다.

그런데 모든 타일들이 Collider가 개별적으로 있을 필요는 없는것 같죠?

이 부분을 해결해 보겠습니다.






1-3) Composite Collider 2D



Tilemap Collider 2D => Used By Composite를 체크하고,

Composite Collider 2D 컴포넌트를 추가하면 Collider들이 합쳐지게 됩니다.

Rigidbody 2D => Kinematic으로 설정해서 지형이 중력의 영향에 안받게 하세요.






바닥의 내부에 있던 콜라이더 박스들이 사라져있다.






1-4) 캐릭터 추가



PennyPixel.zip

PennyPixel을 다운받고 임포트 해주세요.

하이라키뷰에 PennyPixel을 추가한 후, 위치를 조정해 줍니다.








바닥과 캐릭터를 보면 Collider끼리 맞다아 있는걸 볼 수 있어요.

보기 편하게 하기 위해서 저는 Gizmos => 3D icons 크기를 줄여주면 

3d카메라 아이콘을 안보이게 할 수 있습니다.







Penny캐릭터에는 Player Platformer Controller 스크립트가 포함되어 있기때문에,

단축키 W, A, S, D를 이용해서 이동과, 단추키 Space를 이용해서 점프가 가능합니다.






1-5) 시네머신2D



플레이어를 움직이면 카메라가 따라오지 않아 부자연스럽습니다.

시네머신2D를 이용해 자연스럽게 따라가는걸 만들어 볼텐데요.

시작하기전에 배경화면을 셋팅하겠습니다.

Background_Gradient을 이용해서 배경화면을 만들고

* BackgroundClouds_SpriteSheet를 이용해서 구름을 만들겠습니다.

* 타일들을 이용해 계단도 만들어 줄게요.










이제 시네머신을 사용해 볼 차례에요.

Window => Package Manager를 클릭 후 Cinemachine을 인스톨 해주세요.

과거에는 구성되어 있는데, 이 방법으로 변경되었습니다.





이제 상단창에 Cinemachine이 보이실거에요.

Create 2D Camera를 선택하게 되면 CM vcam이라는 오브젝트가 생기게 됩니다.





Cinemachine Virtual Camera => Follow에 캐릭터를 넣어주면,

smoothing Camera처럼 캐릭터를 따라가게 됩니다.

캐릭터가 카메라로 부터 일정거리를 벗어나게 되면 따라가는 형식으로써, 적용구역을 변경가능합니다.

캐릭터 밑에 있는 노란점이 벗어냐느냐에 따라 달라진다고 생각하시면 됩니다.





캐릭터가 떨어지면 카메라가 계속 따라오는 현상이 있습니다.

과연 어떻게 해야 따라오는걸 멈출까요?

Add Extension => CinemachineConfiner를 이용하면 일종의 벽을 만들 수 있습니다.

지역을 벗어날수 없는거죠.





배경 오브젝트에 Polygon Collider를 추가합니다.

충돌처리를 하려면 Collider가 필요한데 시네머신에는 Polygon과 TileMap만 적용 가능합니다.

Is Trigger 또한 체크해줍시다. 체크하지 않으면 캐릭터의 Rigidbody와 충돌처리가 일어나 

캐릭터가 배경화면 위로 올라가게 됩니다.





BackGround의 스케일값을 늘리고, Edit Collider를 통해서 콜라이더의 크기를 조정해 주세요.

그리고 Is Trigger를 체크해 주셔야 캐릭터와 충돌처리가 일어나지 않습니다.





Cinemachine Confiner => Bounding Shape 2D에 배경화면 오브젝트를 추가하면 끝입니다.

캐릭터가 밑으로 떨어져도 Collider 밖으로는 따라가지 않습니다.








2. 마무리



오늘 강의는 여기까지입니다.

시네머신과 타일들을 통해 간단한? 충돌처리를 진행했습니다.

다음 시간에는 룰타일에 대해서 알아보겠습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unity---2D













댓글

Designed by JB FACTORY