Загрузка данных


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