본문 바로가기
유니티강좌

더블 점프 구현. 연속 2단 점프 | 점프 강도, 스피드, AddForce | 유니티 게임 개발 튜토리얼(Unity & C# Script)

by Ncube 2021. 1. 9.

 

 

오브젝트를 좌, 우로 이동하거나 스페이스바를 연타로 2번 누르면 캐릭터가 더블점프를 합니다. 점프강도(JumpForce), 이동속도(MoveSpeed)를 수정 할 수도 있습니다.

 

 

 

[DoubleJump.cs]

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DoubleJump : MonoBehaviour
{
    [SerializeField] float jumpForce = 600f, speed = 5f;
    float moveX;
    Rigidbody2D rb;

    bool doubleJumpState = false;
    bool isGround = false;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        Movement();
    }

    void Movement()
    {
        if (rb.velocity.y == 0)
            isGround = true;
        else
            isGround = false;

        if (isGround)
            doubleJumpState = true;

        if (isGround && Input.GetButtonDown("Jump"))
            JumpAddForce();
        else if (doubleJumpState && Input.GetButtonDown("Jump"))
        {
            JumpAddForce();
            doubleJumpState = false;
        }

        moveX = Input.GetAxis("Horizontal") * speed;
        rb.velocity = new Vector2(moveX, rb.velocity.y);
    }

    void JumpAddForce()
    {
        rb.velocity = new Vector2(rb.velocity.x, 0f);
        rb.AddForce(Vector2.up * jumpForce);
    }
}

 

댓글