使用键盘输入强度进行短跳和大跳跃

时间:2017-07-25 22:00:04

标签: c# unity5 unityscript unity2d

当我跳过GameObject时遇到了问题。我已经制作了动作largjump和shortjump。但问题是如何制作条件声明。我想区分弱键盘输入和强大的键盘输入。

这是我的代码。

if (Input.GetButtonDown("Jump"))
{
    float JumpTime = 0;
    JumpTime = JumpTime + Time.deltaTime;
    if (Input.GetButtonUp("Jump") && JumpTime < 0.3f)
    {
        playerCtrl.ActionShortJump();
    }
    else if (Input.GetButtonUp("Jump") && JumpTime > 0.3f)
    {
        playerCtrl.ActionJump();
    }
}

1 个答案:

答案 0 :(得分:3)

GetButtonDown仅在按下按钮的第一帧时返回true,因此您永远不会跳跃,因为按钮不能在同一帧上向下和向上。按住按钮时需要使用GetButton来增加跳跃时间,并且在第一次按下按钮时需要GetButtonDown来重置计时器,同时还要声明JumpTime以外的按钮整体方法。

float JumpTime;

void Update()
{
    if (Input.GetButtonDown("Jump"))
       JumpTime = 0;
    if (Input.GetButton("Jump"))
        JumpTime += Time.deltaTime; 
    if (Input.GetButtonUp("Jump") && JumpTime > 0 && JumpTime < 0.3f)
        playerCtrl.ActionShortJump();
    else if (Input.GetButtonUp("Jump") && JumpTime > 0 && JumpTime > 0.3f)
        playerCtrl.ActionJump();
    else
        JumpTime = 0;
}