본문 바로가기
Unity

플레이어 점프 개발 노트

by hallojih 2022. 3. 29.

고작 플레이어 점프를 하는데 굉장히 많은 시간이 걸렸다.

 

첫 번째 문제점은 점프는 되는데 반복적인 점프가 발생했다.

따라서 점프 애니메이션 마지막 단계에 이벤트를 넣었다. 점프를 하면 플레이어의 y위치 값이 증가할 것이고 그라운드와는 떨어지게 된다. 그 이후 한번 다시 그라운드와의 충돌이 일어나고 한 번 더 점프를 위한 키 입력이 발생할 경우 Jump 상태로 전환 시켰으며 그렇지 않은 경우는 Idle 상태로 전환되도록 하였다.

private void OnTriggerEnter(Collider collider) 함수를 사용하여 플레이어 콜라이더가 그라운드의 태그와 충돌이 일어날 조건을 넣어주어 충돌 발생 시, 다시 Jump상태로 전환될 수 있도록 Idle 상태로의 전환 및  Jump 상태의 Bool값 변환을 하였다.

 

두 번째 발생한 문제점은 몇 번 점프 이후에 점프에 해당하는(Space 사용) KeyDown 자체가 먹히지 않았다. 이에 대한 해결을 위해 시간날 때마다 몇 주간 디버깅을 했으나 원인을 찾을 수 없었는데

황당하게도 원인은 단순하게도 플레이어 콜라이더와 그라운드 콜라이더의 간격에 의한 발생이었다.

그라운드가 편평하지 않고 기울어진 부분이 있음으로 인해 플레이어가 특정 땅 위에서는 점프 후 착지하면 충돌 트리거가 작동하기 때문에 Idle 상태로 변환이 가능하고 재점프가 가능한 상태가 되지만,

그렇지 못한 땅 위에서는 아무리 뛰어도 애초에 점프 함수로 들어가지 않으니 점프가 발생하지 않는 것이었다.

 

728x90
반응형

'Unity' 카테고리의 다른 글

TransformDirection 함수  (0) 2022.04.17
OnCollsionEnter 함수 작동이 안될 때  (0) 2022.03.05
점프 애니메이션  (0) 2022.03.05
유니티 충돌 관련 기억해야 할 부분  (0) 2022.03.04
Spawning Pool  (0) 2022.02.20

댓글