2016-11-04 4 views
0

Я пытаюсь сделать плавный двухступенчатый механик для игры Unity 2D, платформер, но сейчас второй прыжок больше, если вы прыгаете сразу после первого прыжка, и я хочу, чтобы он был другим путь вокруг двойной прыжок должен бросить вас выше, если вы нажмете ее позже, как и в большинстве 2D платформер игры это мой кодПлавный двойной прыжок Unity 2D platformer

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

ответ

0

Попробуйте этот код:

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

в этом случае необходимо уменьшить значение переменной JumpPower

+0

Это не помогает просто уменьшить значение переменной JumpPower. – mashinkata

+0

Вы использовали любые входные контроллеры для управления героем? –

+0

Нет Я использую свой собственный скрипт для его перемещения. – mashinkata

0

Честно говоря, я не уверен, есть ли способ сделать то, что вы просите. Но попытались ли вы связать JumpPower с таймером? Другими словами, чем дольше персонаж находится в воздухе, тем больше времени истекло, тем больше силы прикладывается к 2-му прыжку при нажатии кнопки.