문제 - 몬스터가 점프 시, 허우적거리는 현상

jumpwhatthe.gif

왜 공중에서 허우적허우적 하는지 모르겠네….

원인 분석 (1)

점프 애니메이션이 수행되는 로직은

  1. 몬스터 스크립트에서 구현된 Jump() 메서드를 통해 rigidbody2D 의 y 값이 증가한다.
  2. PixelMonster 스크립트의 SpeedVertical 에 현재 rigidbody2D 의 y 값을 대입한다.
  3. animator 의 SpeedVertical 값이 1 이상이 되면 Air Up Blend 상태로 전이한다.
  4. SpeedVertical (rigidbody2D) 값이 -0.5 이하가 되면 Air Down 상태로 전이한다.
  5. 몬스터가 착지하여 isGrounded 변수가 True 가 되면 Land 상태로 전이한다.

image.png

문제가 되는 상황의 Animaotr 상태는 점프 시, Air Up Blend 상태가 여러 번 반복되다가 착지하는 Land 상태로 전이된다.

정상적인 작동 시에는, 점프 시작 순간 Air Up Blend , 최고점을 찍고 낙하하는 순간 Air Down, 땅에 착지하는 순간 Land 가 되어야 한다.