unity 2d人物二段跳,多段跳 简单易懂
开门见山,代码见英雄
续前面一篇2d游戏人物跳跃移动unity 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--;
}