2017-07-25 9 views
0

GameObjectを飛ばしたときに問題が発生しました。私はすでに、アクションlargjumpとショートジャンプを作っています。しかし、問題はどうすれば条件文を作成できるかです。弱いキーボード入力と強力なキーボード入力を区別したい。キーボード入力の強さを使ったショートジャンプと大きなジャンプ

ここに私のコードです。

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唯一の真の最初のフレームボタンを押すと、そのボタンは同じフレームを下にしてアップすることはできませんので、あなたがジャンプすることはありませんが返されます。ボタンが押されている間にジャンプ時間を増やすには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(); 
    } 
} 
関連する問題