상세 컨텐츠

본문 제목

[2D-Platformer] 3. 점프 구현하기 (Jump)

개발기록/Unity 유니티

by 도리(Dory) 2025. 12. 27. 11:28

본문

 

이번에는 점프 기능을 추가하였다.

 

 

점프 기능 추가

 

 

 

점프는 Update에서 점프가 가능한 상태인지를 구분해주고

FixedUpdate에서 실행해 주었다.

 

 

    void Update()
    {
        if (isGrounded && !isClimbing && Input.GetKeyDown(KeyCode.Space))
        {
            jumpRequest = true;
        }
    }



    private void FixedUpdate()
    {   
        // jump
        if (jumpRequest)
        {
            Jump();
            jumpRequest = false;
        } 
    }


    private void Jump()
    {
        rb.linearVelocity = new Vector2(rb.linearVelocity.x, 0f);
        rb.linearVelocity = new Vector2(rb.linearVelocity.x, jumpPower);
    }

 

 

 

Jump 함수에서 0을 한번 줬다가 jumpPower를 주는 이유는 모든 점프를 일정하게 하기 위해서이다.

점프 파워, 높이 등을 일정하게 맞춰준다.

 

 

근데 그러다가 이런 버그를 발견했다.

 

Jump Bug

 

 

점프를 하면서 벽을 밀쳤을 때 마찰력 때문에 서로 계속 밀어서 움직이지 않았다.

중력이 엄청 세지 않아서 그런 것도 같았다. (gravity scale 10)

 

결국 마찰력을 0으로 한 Physics Material 2D를 만들어 Player Collider에 연결해줌으로써 문제를 해결했다!

 

관련글 더보기