본문 바로가기
Unity

Unity로 2D게임 만들기 2 - 착지 오류 고치기

by hyoomi 2021. 10. 7.

착지 바운스 오류

이전 포스팅에서 만든 게임을 플레이해보면

중력으로 인해 캐릭터가 떨어지면서 약간의 바운스가 있는걸 확인할 수 있다.

 

이를 해결하기 위해서 캐릭터의 Rigidbody2D 컴퍼넌트에서 Collision Detection*을 Continuous로 바꿔준다.

 

* Collision Detection(충돌 감지)

물리 엔진은 매 연산 주기마다 각 Collider들의 충돌을 검사한다.

충돌을 검사하는 방식은 크게 Discrete와 Continuous로 나눌 수 있다.

Continuous는 동적 콜라이더(RigidBody 있음)에는 Discrete(불연속) 충돌, 정적 메쉬 콜라이더(RigidBody 없음)에는 Continuous(연속) 충돌을 적용한다. (물리 연산 성능에 크게 영향을 주기 때문에, 빠른 오브젝트의 충돌로 문제가 나오지 않는 경우는 Discrete대로 하자.)

[참고] https://docs.unity3d.com/kr/530/Manual/class-Rigidbody.html

 

착지 판정 오류

떨어지는 중 플레이어 턱에 발판이 걸리면 착지 판정되는 오류가 있다.

Physics Material 2D - Friction: 0, Bounciness: 0을 플레이어의 Box Collider 2D에 적용시켜봤지만

미끄러지지 않고 벽에 붙어 있는다. 턱이 너무 날카로워서 그런 것 같다...

어쩔 수 없이 Box Collider를 Circle Collider로 변경해주자.

 

언덕을 미끄러지는 오류

가만히 서있으면 캐릭터가 언덕을 미끄러져 내려간다. 

PhysicsMaterial2D- Friction: 1, Bounciness: 0으로 설정해주고

플레이어의 다리쪽 Collider에 Material로 적용해준다.

댓글