using UnityEngine;
public class PlayerController : MonoBehaviour
{
// ... твои старые переменные (rb, speed, jumpForce и т.д.) ...
[Header("Double Jump Settings")]
public int maxJumps = 2; // Максимальное количество прыжков
private int jumpsRemaining; // Сколько прыжков осталось прямо сейчас
public ParticleSystem jumpEffect; // Сюда перетащим эффект прыжка
// Внутри метода Update или там, где у тебя обрабатывается нажатие кнопки прыжка:
void Update()
{
// Если белка на земле, обновляем счетчик прыжков
if (isGrounded)
{
jumpsRemaining = maxJumps;
}
// Обработка нажатия кнопки прыжка (например, Пробел)
if (Input.GetButtonDown("Jump"))
{
if (isGrounded)
{
Jump();
}
else if (jumpsRemaining > 1) // Если мы в воздухе, но остался второй прыжок
{
DoubleJump();
}
}
// ... остальной код (аниматор и т.д.) ...
}
void Jump()
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
jumpsRemaining--; // Тратим первый прыжок
}
void DoubleJump()
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce); // Толкаем вверх еще раз
jumpsRemaining--; // Тратим второй прыжок
// Спавним эффект, если он привязан в инспекторе
if (jumpEffect != null)
{
jumpEffect.Play();
}
}
}