у меня есть этот код для моего персонажа, чтобы прыгать, когда он заземлен:Unity 2D прыгать больше при нажатии 2 кнопки одновременно
if (Input.GetKeyDown("w") || Input.GetKeyDown("up") || Input.GetKeyDown("space"))
{
GetComponent<Rigidbody2D>().AddForce(new Vector2(0f, jumpForce), ForceMode2D.Impulse);
}
проверить, если он заземлен с помощью следующего кода (так же, как платформер в Юнити 5 «Пример проектов стандартных активов»).
Physics2D.OverlapCircleAll(m_GroundCheck.position, k_GroundedRadius, m_WhatIsGround);
Проблема заключается в том, что если я нажимаю более чем один из 3-х кнопок (ш, вверх, пространство), одновременно он делает скачок намного выше, чем это необходимо. (Это почти похоже на двойное усилие). Как я мог это исправить?
http://www.quickmeme.com/img/b1/b16846514f96315a2db0501afb434fb5662b92679ee85364c51a3808e7389806.jpg – phpmeh
Я думаю, что вы будете иметь, чтобы проверить, являются ли они в настоящее время на земля. Если они уже прыгают, то просто возвращайтесь. В противном случае вы могли бы добавить флаг, который можно прыгать раз в секунду, может быть? Может быть, у кого-то есть лучший ответ. – phpmeh
У меня проблемы, когда я нахожусь в воздухе. Я получаю его только при нажатии нескольких кнопок одновременно, пока я все еще заземлен. (haha nice meme btw: P) – user2975038