我正在根据this视频中显示的代码在Unity中制作2D无尽的平台跑酷游戏,但我不知道如何使角色滑出平台就能跳起来。 / p>
在代码中,通过检查玩家在按下空间时是否在其下方有平台来控制跳跃。因此,当角色从平台滑落时,他在下方什么也没有,也无法跳跃。
我想出了如何使角色双跳的方法,但无法解决跌倒问题。我所做的一切都使角色不断跳跃。
我不知道如何使角色在平台滑落后跌落时能够跳跃(因此角色在跌倒前尚未跳起)。
好的,这是代码:
public void OnJumpInputDown() {
if (controller.collisions.below) {
velocity.y = maxJumpVelocity;
doubleJump = true;
}
} else if (doubleJump)
{
doubleJump = false;
velocity.y = maxJumpVelocity;
}
}
答案 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;
}
}