Unity 2Dキャラクターのダブルジャンプ、多段階ジャンプはシンプルで理解しやすい

Unity 2Dキャラクターのダブルジャンプ、多段階ジャンプはシンプルで理解しやすい

簡単に言えば、コードはヒーローを見ています

前の記事から続く2Dゲームのキャラクターのジャンプと移動ユニティ2Dゲームのジャンプと移動の白兵戦

isGround = Physics2D.OverlapCircle(jiao.position, 0.1f, ground);//该函数返回jiao的位置是否和图层ground发生碰撞重合,发生碰撞的话一定在地面上
    
if (isGround)//isGround是判断是否在地面
    {
    
    
      jumpCount = 1;//jumpCount是设置人物可以跳跃的次数-1(可以设置多次跳跃)
    }

    if (Input.GetButtonDown("Jump") && jumpCount > 0)//是否可以进行人物跳跃
    {
    
    
      playRig.velocity = Vector2.up * jumpSpeed;
      jumpCount--;
    }
    else if(Input.GetButtonDown("Jump") && jumpCount==0&&isGround)//有人问为什么该条件isGround是true的情况下还可以跳跃,不应该是false的条件下吗,这样的话不就是可以无限跳跃了吗?
    //这样子不会,因为当jumpCount的数值一直大于0的情况下一直执行上面的if语句跳跃,当jumpCount等于0的时候就是人物最后一次跳跃了,之前的isGround也一直没有设置成false
    {
    
    
      playRig.velocity = Vector2.up * jumpSpeed;
      isGround=false;
      jumpCount--;
    }

おすすめ

転載: blog.csdn.net/m0_48554728/article/details/114545821