1. 程式人生 > >Unity2D遊戲開發—— 解決主角連跳小BUG(在空中無限跳)

Unity2D遊戲開發—— 解決主角連跳小BUG(在空中無限跳)

一 思路:

        用一個布林變數,只要當主角在地面時(碰撞檢測),布林值設為真,主角跳躍後布林值設為假。

         主角跳躍的條件為:布林值為真 且 按下相應鍵

二 上程式碼:

   private bool isJump = false;

   private void OnCollisionEnter2D(Collision2D col)  // 碰撞檢測
    {
        if (col.gameObject.tag == "Ground")  // 地面的標籤(tag) 是 “Ground”
        {
            isJump = true;  //布林值設為真
        }
    }

 void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space) && isJump == true)  // 按下空格 且 布林值為真
        {    
            rig.AddForce(new Vector2(0, jumpForce));   // 給剛體一個向上的力
            isJump = false; //跳完後布林值設為假
        }

  }