Unity에서 Rigidbody를 이용해 플레이어 이동을 구현하고 점프를 하다 보면 플레이어가 점프했을 때 벽(다른 collider)에 붙어 떨어지지 않는 경우가 있다. 이동키를 누르지 않으면 벽에 붙어 있다가 겨우 땅으로 떨어지는데 이 문제를 수정해보자.
가장 간단한 방법은 움직이는 플레이어의 전면과 옆면을 커버할 수 있는 collider 붙여주고 그 collider에 Friction을 0으로 설정한 Physic Material을 넣어주는 것이다.
Unity Documentation - Physic Material
Physic Material
생성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을 넣어주었다.