[Unity] Rigidbody 이동 물체가 벽에 붙는 현상 수정

Psychologist Dobby·2022년 9월 2일
0

Unity 공부

목록 보기
2/2

Unity에서 Rigidbody를 이용해 플레이어 이동을 구현하고 점프를 하다 보면 플레이어가 점프했을 때 벽(다른 collider)에 붙어 떨어지지 않는 경우가 있다. 이동키를 누르지 않으면 벽에 붙어 있다가 겨우 땅으로 떨어지는데 이 문제를 수정해보자.

Physic Material

가장 간단한 방법은 움직이는 플레이어의 전면과 옆면을 커버할 수 있는 collider 붙여주고 그 collider에 Friction을 0으로 설정한 Physic Material을 넣어주는 것이다.
Unity Documentation - Physic Material

  1. Assets 폴더 우클릭 - Create - Physic Material 생성
  2. Physic Material의 마찰력 Dynamic, Static Friction을 0으로 설정하고 Friction Combine을 Minimum으로 설정
    (Bounciness는 주고 싶을 경우 원하는 값 넣어 설정)
  3. 플레이어의 전면, 옆면에 Collider 추가 후 Material에 만들어 둔 Physic Material 넣기

결과 비교

collider에 마찰력 0으로 설정한 Physic Material 넣은 경우
이동키를 누르고 있어도 벽에 붙지 않고 잘 떨어진다.

collider에 Physic Material 없는 경우
이동키를 누르고 있을 경우 계속 벽에 붙는다.


나의 경우 플레이어가 Bounce가 필요 없어서 0으로 설정하고 Bounce Combine도 Minimum으로 설정해 절대 튀어오르지 않게 했다.
플레이어 움직임은 rigidbody.velocity를 이용하고 Rigidbody에서 x,y,z 회전에 모두 제한을 걸어두었기 때문에 별도 콜라이더를 추가하지 않고 그냥 안에 추가해놨었던 capsule collider 안에 Physic Material을 넣어주었다.

profile
개발하는 심리학자

0개의 댓글