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의 바닥재질) 로 해줘야 오르막길을 올라갈 수 있다. 이걸 안하면 오르막길을 올라가지 못한다!
'Unity > 2D' 카테고리의 다른 글
[Unity] 2D게임 만들기 #7_플레이어 피격이벤트 구현 (0) | 2021.09.26 |
---|---|
[Unity]2D게임만들기 #6_몬스터 AI구현 (0) | 2021.09.26 |
[Unity]2D게임만들기 #4_ 플레이어 점프 구현 (2) | 2021.09.26 |
[Unity] 2D게임 만들기 #3-2_ 플레이어 이동과 애니메이션 순환/ 애니메이터 이용해서 플레이어 멈추고 걷기 구현 (2) | 2021.09.06 |
[Unity]2D게임만들기 #3_플레이어 이동,저항설정 / 리지드바디 오브젝트가 구를 때 해결방법/fixedUpdate와 Update의 차이점 (0) | 2021.08.30 |
댓글