2017-07-25 3 views
0

J'ai rencontré un problème lorsque j'ai sauté GameObject. Je fais déjà l'action largjump et shortjump. Mais le problème est comment puis-je faire une déclaration conditionnelle. Je veux distinguer une faible entrée au clavier et une forte entrée au clavier.Saut court et saut important avec l'entrée Force of Keyboard

Voici mon code.

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

Répondre

2

GetButtonDown ne renvoie true la première image le bouton est pressé, alors vous ne serez jamais sauter depuis le bouton ne peut être vers le bas et sur le même cadre. Vous devrez utiliser GetButton pour augmenter le temps de saut pendant que le bouton est maintenu enfoncé, et GetButtonDown pour réinitialiser le minuteur lorsque vous appuyez pour la première fois sur le bouton, tout en déclarant le JumpTime en dehors de la méthode globale.

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