2017-07-25 36 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(); 
    } 
}