본문 바로가기

Unity

[Unity] 캐릭터 점프 시 벽에 붙는 현상 수정

 지난 포스팅에서 충돌체 만들기와 캐릭터의 이동 및 점프를 구현했습니다. 이렇게 캐릭터와 벽(충돌체)를 만들고서 점프한 후 벽에 부딪혔더니 캐릭터가 벽에 달라붙은 후 천천히 떨어지는 현상이 발생했습니다. 이번에는 이러한 현상을 수정해보도록 하겠습니다.

 

 해당 현상은 오브젝트의 마찰력과 관련된 현상입니다. 그러므로 충돌체의 마찰력을 지워주는 식으로 현상을 해결해보도록 합시다.

 

 

 

 마찰력을 조작하기 위해서는 Physic Material을 사용해야 합니다. 그러므로 Material을 생성해야 하는데, 이 Material 또한 추후 여러가지가 생성될 수 있으니 폴더를 만들고 그 밑에 만들어줍시다.

 

Project의 Assets 및에 Material폴더를 만들고
해당 폴더 안에 Physic Material을 생성해줍니다. 
이름은 ZeroFriction으로 해주었습니다. 

 

 

이렇게 만들고 나서 Inspector를 보니 5가지 프로퍼티가 있습니다. 해당 프로퍼티의 내용은 다음과 같습니다.

 더 자세한 내용은 docs.unity3d.com/kr/current/Manual/class-PhysicMaterial.html 를 참조하시면 좋을 것 같습니다.

 

물리 머티리얼 - Unity 매뉴얼

Physic Material 은 충돌하는 오브젝트의 마찰 또는 바운스 효과를 조정하는 데 사용합니다.

docs.unity3d.com

 

이 프로퍼티들 중 Dynamic FrictionStatic Friction을 0으로 만들고 Friction CombineMinimum으로 설정하면 Physic Material의 설정은 완료입니다.

  

 

 다음으로 해당 Physic Material를 부여할 차례입니다. 방금 만든 ZeroFriction을 Player에게 부여해주도록 하겠습니다.

 

 먼저 Player에 Physic Material를 부여할 새로운 Collider를 만들어줍니다. 이 때, 오브젝트는 여러 Collider를 함께 지닐 수 있지만 이렇게 마구 추가하다 보면 Inspector 창이 더러워질 수 있으므로 새로운 GameObject를 생성하고 여기에 Collider를 추가한 후 Player의 자식으로 등록하는 방식으로 진행하겠습니다.

 

 

 

Hierarchy에서 Create Empty를 선택합니다.
생성된 GameObject의 이름을 FrictionCollider로 변경하고 Position을 Player와 맞춰줍니다

 

 새로운 GameObject를 생성하고 위치를 맞추었다면 이를 Player의 자식으로 등록하고 Collider를 추가해줍니다. 이 Collider는 Player를 충분히 감쌀 수 있을 정도면 됩니다.

 

 

 

Collider를 생성했다면 여기에 Material을 적용해줍시다. 방금 만든 ZeroFriction을 Collider의 Material에 끌어서 추가해거나 오른쪽의 동그라미를 눌러 ZeroFriction을 찾아 클릭해주면 됩니다.