C# 利用键盘输入的力量进行短跑和跳远

C# 利用键盘输入的力量进行短跑和跳远,c#,unity3d,C#,Unity3d,当我跳过游戏对象时遇到了问题。我已经做了跳远和跳远动作。但问题是我怎样才能做出条件语句。我想区分弱键盘输入和强键盘输入 这是我的密码 if (Input.GetButtonDown("Jump")) { float JumpTime = 0; JumpTime = JumpTime + Time.deltaTime; if (Input.GetButtonUp("Jump") && JumpTime < 0.3f) { pla

当我跳过游戏对象时遇到了问题。我已经做了跳远和跳远动作。但问题是我怎样才能做出条件语句。我想区分弱键盘输入和强键盘输入

这是我的密码

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();
    }
}
GetButtonDown仅在按下按钮的第一帧时返回true,因此您永远不会跳转,因为按钮不能在同一帧上上下移动。当按下按钮时,需要使用GetButton来增加跳转时间,当第一次按下按钮时,需要使用GetButtonDown来重置计时器,同时还需要在整个方法之外声明跳转时间

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;
}
GetButtonDown仅在按下按钮的第一帧时返回true,因此您永远不会跳转,因为按钮不能在同一帧上上下移动。当按下按钮时,需要使用GetButton来增加跳转时间,当第一次按下按钮时,需要使用GetButtonDown来重置计时器,同时还需要在整个方法之外声明跳转时间

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;
}