一 思路:
用一个布尔变量,只要当主角在地面时(碰撞检测),布尔值设为真,主角跳跃后布尔值设为假。
主角跳跃的条件为:布尔值为真 且 按下相应键
二 上代码:
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; //跳完后布尔值设为假
}
}