Unity

유니티 점프 애니메이션 사이클

atvs 2021. 2. 18. 16:34

[높이 축 가속도 방향]

velocityY = 1 * Mathf.Sign(rigidbody.velocity.y)

[땅에 닿는지 여부]

(Update Loop)

isGrounded = Physics2D.OverlapCircle or Physics.OverlapSphere

[점프 코드]

땅에서 점프키 누를시 (isGrounded && KeyDown)

rigidbody.AddForce(Vector.up(점프 축) * jumpForce(점프 파워), ForceMode.Impulse);

[애니메이션] 점프 중

"Idle" -> "Jump"

[트랜지션]

velocityY > 0

isGrounded = false

[애니메이션] 떨어지는 중

"Jump" -> "Land"

[트랜지션]

velocityY < 0

isGrounded = false

[애니메이션] 떨어지다 땅에 닿는

"Land" -> "idle"

[트랜지션]

isGrounded = true

[애니메이션] 점프 없이 떨어지는 경우

"Idle" -> "land"

[트랜지션]

velocityY < 0

isGrounded = false