2 Dプレーヤーのジャンプを実現


プレイヤーのジャンプを実現

資源は金金属資源を用いた.
void Update()
    {
        //Jump 할 수 있는지 없는지 
        jumpCheck();


    }
まず、Update文でjumpCheck関数を呼び出します.
void jumpCheck()
    {
        if (Input.GetButtonDown("Jump") && jumpCount < jumpCountMax)
        {
            jump();
           
        }
        if (isGround && jumpCount >= jumpCountMax)
            jumpCount = 0;
    }
jumpCount変数(値2)を用いて2段以上のジャンプを阻止する.
void GroundCheak()
    {
        RaycastHit2D rayhit = Physics2D.Raycast(rigid.position, Vector2.down, 1, LayerMask.GetMask("Platform"));
        if (rayhit.collider != null)
        {
            isGround = true;
        }
        else
        {
            isGround = false;
        }
    }
Raycastで床をチェック
public void jump()
    {
        if (rigid.velocity.y < maxForce) //y속도가 최대 속도보다 적을 때
        {
            rigid.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); //위로 jumpForce만큼 힘을 준다
        }
        else //그렇지 않을 때
        {
            //y속도를 maxForce(최대 속도)만큼만 준다.
            rigid.velocity = new Vector2(rigid.velocity.x,maxForce); //y속도를 maxForce(최대 속도)만큼만 준다.
        }
        jumpCount++;
    }

AddForceの特性上


力を入れるとずっと力を入れるので真ん中は落ち着く(?)注文しなければ弾丸より速いスピードで屋根を蹴ることができます.このような事態を防止するためには、最大速度(maxForce)を決定しなければならない.
y軸の速度が2479142未満の場合にのみ力を入れ、大きい場合は無条件の速度で最大速度に達すればよい.