Unity-从平台滑落时使角色能够跳跃

时间:2018-10-22 18:30:44

标签: unity3d

我正在根据this视频中显示的代码在Unity中制作2D无尽的平台跑酷游戏,但我不知道如何使角色滑出平台就能跳起来。 / p>

在代码中,通过检查玩家在按下空间时是否在其下方有平台来控制跳跃。因此,当角色从平台滑落时,他在下方什么也没有,也无法跳跃。

我想出了如何使角色双跳的方法,但无法解决跌倒问题。我所做的一切都使角色不断跳跃。

我不知道如何使角色在平台滑落后跌落时能够跳跃(因此角色在跌倒前尚未跳起)。

好的,这是代码:

public void OnJumpInputDown() {
    if (controller.collisions.below) {
            velocity.y = maxJumpVelocity;
            doubleJump = true;
        }
    } else if (doubleJump)
    {
        doubleJump = false;
        velocity.y = maxJumpVelocity;
    }
}

2 个答案:

答案 0 :(得分:0)

由于您没有发布任何特定的代码,所以我只给您一个一般性的答案。您需要做的是创建另一个条件,并且当玩家没有任何物品在身下时,您需要确定他是否正在滑离平台。一个可能的例子是创建一个布尔值,一旦他滑动,布尔值就变为真,因此如果他下面没有任何东西,但是布尔值是真,那么他仍然可以跳,否则他下面没有任何东西并且他不能跳。

答案 1 :(得分:0)

所以我今天想出了什么,我添加了一个变量,该变量可以记住玩家可以进行多少次跳跃,当他触地时,如果玩家尚未跳跃,它将重置。 :)这是代码:

int hasJumps;
bool jumping;

public void OnJumpInputDown() {
    jumping = true;
    if (controller.collisions.below) {
         velocity.y = maxJumpVelocity;
         hasJumps = hasJumps - 1;
    } else if (hasJumps != 0) {
        velocity.y = maxJumpVelocity;
        hasJumps = hasJumps - 1;
    }
}

public void OnJumpInputUp() {
    jumping = false;
}


void IsFalling()
{
    if ((controller.collisions.below) && (!jumping))
    {
        hasJumps = 2;
    }
}