public class playermovement : MonoBehaviour
{
public gamemanager gm;
public Rigidbody rb;
public float strafeSpeed = 50f;
public float runspeed = 50f;
public float jumpForce = 10f;
protected bool strafeForward = false;
protected bool strafeBack = false;
protected bool strafeRight = false;
protected bool strafeLeft = false;
protected bool dojump = false;
// Счетчик прыжков
private int jumpCount = 0;
void Update()
{
// ... остальной код ...
if (Input.GetKeyDown("space") && jumpCount < 2)
{
dojump = true;
jumpCount++;
}
// ... остальной код ...
}
void FixedUpdate()
{
// ... остальной код ...
if (dojump)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
dojump = false;
}
}
}
Чтобы персонаж мог прыгать максимум 2 раза, можно добавить счетчик прыжков и проверять его значение в методе FixedUpdate(). Например:
В этом коде:
* Счетчик прыжков jumpCount инициализируется как 0.
* В методе Update() проверяется, было ли нажато пробел и значение jumpCount меньше 2. Если оба условия выполняются, увеличивается jumpCount и устанавливается dojump в true.
* В методе FixedUpdate() проверяется, установлен ли dojump в true, и если это так, выполняется прыжок. После этого dojump сбрасывается в false.
Таким образом, персонаж сможет прыгать максимум 2 раза, после чего прыжки будут деактивированы.