2016-11-04 1 views
0

Ich versuche, eine glatte Doppelsprungmechanik für Unity 2D, Platformer-Spiel zu machen, aber gerade jetzt ist der zweite Sprung größer, wenn du direkt nach dem ersten Sprung sprungst und ich will den anderen haben Art und Weise um den doppelten Sprung sollten Sie höher werfen, wenn sie gedrückt wird später wie in den meisten 2D-Jump'n'Run-Spiele dies ist mein CodeSmooth Doppelsprung Unity 2D Jump'n'Run

 private void Update() 
     { 
      grounded = Physics2D.OverlapArea(transform.position, GroundedEnd.position, 1 << LayerMask.NameToLayer("Ground")); 
      if (grounded || !doubleJumpUsed) 
      { 
       playerRigidBody.AddForce(new Vector2(0, JumpPower)); 
      } 
      if (!grounded && !doubleJumpUsed) 
      { 
       doubleJumpUsed = true; 
      } 
      UpdateJumpingAnimator(); 
     } 

     private void UpdateJumpingAnimator() 
     { 
      if (grounded) 
      { 
       doubleJumpUsed = false; 
      } 
     } 

Antwort

0

diesen Code Versuchen:

playerRigidBody.AddForce(new Vector2(0, JumpPower), ForceMode2D.Impulse); 

in diesem Fall ist es notwendig, zu reduzieren der Wert der Variablen JumpPower

+0

Es hilft nicht nur die JumpPower Variable Wert zu reduzieren. – mashinkata

+0

Sie haben irgendwelche Eingabe-Controller für Control Hero? –

+0

Nein Ich benutze mein eigenes Skript, um es zu verschieben. – mashinkata

0

Ehrlich gesagt bin ich nicht sicher, ob es eine schöne Möglichkeit gibt, das zu tun, was du verlangst. Aber hast du versucht, JumpPower in einen Timer zu integrieren? Mit anderen Worten, je länger das Zeichen in der Luft ist, je mehr Zeit verstrichen ist, desto mehr Kraft wird auf den 2. Sprung ausgeübt, wenn die Taste gedrückt wird.