2017-07-25 60 views
0

我跳过GameObject遇到问题。我已经完成了Action 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(); 
    } 
} 

回答

2

GetButtonDown只返回true按钮被按下的第一帧,所以你永远不会跳,因为按钮不能向下和向上在同一框架上。您需要在按住按钮时使用GetButton来增加跳跃时间,而在按下按钮时需要使用GetButtonDown来重置计时器,同时还要声明JumpTime在整个方法之外。

float JumpTime; 

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