본문 바로가기
게임 프로그래밍/유니티 활용

[유니티 활용] Platform Effector 2D 를 이용한 관통 플랫폼 만들기

by 레오란다 2022. 12. 22.
반응형

이번 글은 이전에 작성한 아래의 포스팅에서 이어집니다. 처음부터 차근차근 해보시려면 아래의 링크부터 시작하시는 게 좋습니다. 단방향 충돌처리에 대한 정보만 얻으시려면 이 글로 충분 하실 거라 생각됩니다.

 

 

[유니티 활용] Rigidbody2d 를 이용한 캐릭터의 이동과 점프

캐릭터의 이동과 점프 구현에는 다양한 방법이 존재합니다. 이 번 글에서는 다른 오브젝트와의 상호작용을 처리하기에 좋은 물리엔진을 이용해 아래와 같이 캐릭터의 이동과 점프를 구현하는

ugames.tistory.com

 

 

▶ 플랫폼 만들기

  • 우선 경로 [Assets > SunnyLand Artwork > Environment > props] 에 있는 "platform-log" 를 선택하고 Inspector 창에서 Pixels Per Unit 을 32 로 변경합니다.
  • platform-log 를 Hierarchy 창으로 드래그 하여 객체를 생성하고 이름을 Platform 으로 변경합니다.
  • Platform 객체의 Transform 의 Position 을 X = 1 / Y = 0.5 로 설정해주세요.
  • Platform 객체의 Layer 를 Ground 로 변경합니다.
  • Platform 객체에 BoxCollider2D 와 Platform Effector 2D 를 추가합니다.
  • BoxCollder2D 의 Used By Effector 항목을 체크합니다.

이 작업의 핵심은 바로 Platform Effector 2D 컴포넌트의 사용입니다. 이 컴포넌트가 BoxCollider2D 와 연계하여 한쪽 방향에서만 충돌 체크가 발생하도록 도와줍니다.

 

 

▶ 캐릭터 Collider 수정

  • 현재 설정은 다음과 같이 캐릭터의 BoxCollider2D 가 실제 이미지 보다 많이 크게 잡혀 있기 때문에 눈으로 보기엔 플랫폼 밑으로 들어갈 수 있을 것 같지만 들어가지 못합니다. 크기를 조정해 주어야 합니다.

캐릭터 BoxCollider 크기문제

  • 크기는 Player 객체에 있는 BoxCollider2D 에서 설정할 수 있습니다. 다음과 같이 설정하시면 됩니다.

BoxCollider2D 설정

  • 이제 캐릭터가 플랫폼 밑으로 들어갈 수 있지만 아직 한 가지 문제가 더 있습니다. 현재 Player 객체에 있는 Rigidbody2D 의 설정이 Use Auto Mass 로 되어있기 때문입니다. 이 설정은 Collider의 크기에 따라 Mass 가 설정되기 때문에 캐릭터가 갑자기 엄청나게 높게 점프하게 됩니다. 이를 해결하기 위해선 Use Auto Mass 를 체크 해제하고 밑에 있는 Mass 값을 1 로 설정하면 됩니다.

완성입니다. Play 를 하고 테스트 해보시면 플랫폼이 한 방향으로만 충돌 체크가 되는 것을 보실 수 있습니다.

 

이 방법의 핵심은 Platform Effector 2D 에 있습니다. 설정을 바꾸면 벽 측면에 매달려 있는 것도 가능하니 해당 컴포넌트의 설정을 직접 변경해 가면서 어떻게 동작하는지 테스트 해보시면 도움이 될 것 같습니다.

 

반응형

댓글