Unity2D遊戲開發—— 解決主角連跳小BUG(在空中無限跳)
阿新 • • 發佈:2019-01-24
一 思路:
用一個布林變數,只要當主角在地面時(碰撞檢測),布林值設為真,主角跳躍後布林值設為假。
主角跳躍的條件為:布林值為真 且 按下相應鍵
二 上程式碼:
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; //跳完後布林值設為假
}
}