본문 바로가기
Unity/2D

[Unity]2D게임 만들기 #5_타일맵으로 플랫폼 만들기

by Meaning_ 2021. 9. 26.
728x90
반응형

https://www.youtube.com/watch?v=f8ixw9IpnD8&list=PLO-mt5Iu5TeZGR_y6mHmTWyo0RyGgO0N_&index=5 

 

골드메탈님의 유니티 2D 플랫포머 강의를 공부하며 개인 복습용으로 쓴 글입니다. 

 

 

타일 팔레트


우선 플랫폼을 다 delete 시켜주고 enemy,flag,coin은 꺼준다. 

 

그리고 TileMap폴더를 하나 만들어준다. 

 

Tile Palette

 

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

 

 

Create New Palette 를 누르고 PlatformPalette의 팔레트를 생성해준 후 아까만들어준 TileMap 폴더에 저장해주면된다.

 

Sprites 폴더로 들어가 Platform에 해당하는 모든 이미지를 다 Tile Palette에 넣어준다. 얘 또한 TileMap 폴더에 저장해주면 된다.

 

그럼 모든 플랫폼들이 타일 팔레트 안에 들어온 것을 확인할 수 있다. 

타일들을 깔끔하게 정리해준다.

 

 

타일맵


하이어라키 창 오른쪽 마우스 클릭 -> 2D Object -> TileMap ->Rectengular를 누르면 Grid가 하이어라키 창에 추가된다.

 

TileMap

 

: 타일을 일정하게 깔아두는 컴포넌트 

 

 

+)주의!

 

팔레트 수정할 땐 Edit 켜고, Scence 창에 그릴 땐 Edit 꺼야함. 

(여기서 Edit는 Tile Palette의 Edit을 의미)

 

타일 팔레트의 브러쉬를 이용해서 원하는 플랫폼을 클릭한 후 그걸 씬창에 옮겨주면된다. 마치 물감 찍듯이 하면 된다!!

드래그를 통해서 편하게 긴 플랫폼을 만들어낼 수도 있다.

 

다만 문제는 play버튼을 눌렀을 때  중력이 적용되지 않는다. 즉,플레이어에 rigid body가 적용이 안된다. 이 말은 저 플랫폼들에 콜라이더가 없다는 말이랑 같다. 

 

 

물리 설정


TileMap은 하나의 오브젝트로 구성되어있는데 (아래 사진처럼)

여기에 TileMap Collider2D를 넣어주면된다. 

 

TileMap Collider2D

: 타일맵에 맞춰 생성되는 콜라이더 

 

타일맵에 TileMapCollider2D를 Add Component 해주고

 

정말중요!! 레이어를 Platform으로 해줘야함!! 안그러면 스페이스바 눌러도 점프가 안된다!

 

카메라도 플레이어를 따라 이동하려면 어떻게 해야할까?


메인카메라를 Player 안에 넣어주고 x는 0 y는 0 z는 -10으로 잡아주면된다!

 

 

물리 모양 설정


 

나는 이런식으로 맵을 설정해줬는데 문제는!!

 

오르막길에 오르지 못한다 ㅜㅜ

 

이처럼 물리 모양을 편집해야할 때는 Sprite Editor를 사용해주면된다! 

 

Sprites -> platform 모여있는 이미지 선택 -> Sprite Editor

 

 여기서 Custom Physics Shape를 선택해준다. 노란색 형광펜 쳐놓은거!

 

그리고 상단의 Generate를 누르면

 

이렇게 타일이 실제로 어떤 모양으로 들어가 있는지 알 수 있는데 알고보니 턱이 있어서 플레이어가 오르막길을 오르지 못했던 것이다. 

턱을 없애준다. 그리고 꼭 상단의 Apply를 눌러줘야한다!

 

원래 사각형은 이런 문제가 발생하지 않는데 오르막길 같은 애들은 Sprite가 작으면 이런 문제가 발생할 수 있다.

 

이걸 재적용하기 위해 씬 위에 있는 오르막길과 타일 팔레트 위에 있는 오르막길을 모두 삭제해준다.

그럼 핑크색 박스 같은게 남게 되는데 그걸 지우고 Sprites에 있는 새로 적용해준 오르막길을 타일 맵에 넣어준다. 
(저장경로는 Assets->TileMap폴더에 넣어야한다!!)

 

 

그리고 타일 맵의 오르막길을 브러쉬로 다시 씬에 넣어준다.

원래는 턱이 있었는데 완전 샤프해졌다. 완전한 삼각형 모양이 타일이 됐다!!

 

오르막길을 오를 수 있게 이전에 바닥재질의 마찰을 0으로 하여 빙판처럼 미끄럽게 만들었었다.(Physcial Matetial 2D로!)

https://we1cometomeanings.tistory.com/133?category=959848 

 

[Unity]2D게임만들기 #3_플레이어 이동,저항설정 / 리지드바디 오브젝트가 구를 때 해결방법/fixedUpda

물리이동 - player 양옆으로 이동 + 속도조절 PlayerMove 스크립트를 만들어준 후, Player 객체에 넣어준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 using System.Collections; using System.Collect..

we1cometomeanings.tistory.com

 

+) Physical Material 2D

 

2D 물리 오프젝트 간의 충돌시 마찰과 탄성을 조절하는 것이다. 

 

그렇기에 Tilemap Collider 2D의 Material도 Platform(이전에 만들어줬던 마찰 0의 바닥재질) 로 해줘야 오르막길을 올라갈 수 있다. 이걸 안하면 오르막길을 올라가지 못한다!

728x90
반응형

댓글