본문 바로가기

Unity

[Unity] 공중에 있는 땅 통과 후 착지 구현

728x90

공중에 있는 땅을 캐릭터가 점프하여 뚫고 올라가는 것을 어떻게 구현할 것인가?

 

일 질문을 받자마자 내가 생각한 방법은 일단 4개의 레이어를 사용한다. (Player, PlayerJump, Wall, Ground)

 

  • Player - 플레이어의 초기 상태 레이어이다.
  • PlayerJump - 플레이어가 점프 중인 상태의 레이어이다.
  • Wall - 공중에 있는 땅 레이어이다.
  • Ground - 플레이어가 착지할 수 있는 땅 레이어이다.

먼저 [Project Settings > Physics 2D]에 들어가서 Wall와 Ground가 PlayerJump와 물리적 상호작용을 하지 못하게 한다. 

 

공중에 있는 땅 설정

 

그리고 공중에 있는 땅을 위의 그림처럼 설정해준다. 

 

구현 방법은 Wall 스크립트를 만들어 만약에 플레이어가 Wall과 충돌하게 된다면 플레이어의 레이어를 PlayerJump로 바꿔준다. 그리고 플레이어의 착지 부분 마지막에 Player레이어로 바꿔준다.

 

플레이어 착지 부분은 아래 링크의 Landing 함수와 똑같이 구현해주었고, 마지막 부분에 PlayerJump레이어를 Player 레이어로 바꿔주는 부분만 추가했다.

https://hangjastar.tistory.com/81?category=906497

 

[전투 시스템] Unity: 플레이어 컨트롤러 만들기

플레이어의 움직임과 점프 그리고 공격까지 만들어보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 5..

hangjastar.tistory.com

 

결과 화면

728x90