i have a problem with reloading with Time.time 2d game c# Unity 2020.2

Hello, I hope u are doing great, I have trouble with this part of my code

`public float cool = 3.1f;
public float munition = 3;
private float next = 0.0f;

void Update {
if (Input.GetKeyDown(KeyCode.DownArrow) && munition > 0){
Instantiate(projectil, offlaunch.position,transform.rotation);
munition–;
}
if (munition < 3 && Time.time > next) {

next = Time.time + cool;
munition++;
Debug.Log(munition);
}
}
`
I am doing a shoot, munition and automatic reload system and it almost works, the shooting sytem, and the munition system worked perfectly until i put the reload system, the reload activates when i shoot a lot of times and fast so now the munition system is not working how it will be , and when i finally can use the 3 bullets it reloads fine , but i dont know what to do help please

Side note: Leave a space between your text and your code so that it isn’t formatted like this: void Update() { //.... } but like this:

void Update()
{
    //....
}

Secondly, use a coroutine to wait some time before completing an action. Here’s an example of a basic reload script:

public class WeaponScript : MonoBehaviour
{
    public float cool = 3.1f;
    public float munition = 3;

    public float ReloadSpeed = 0.5f;

    void Start()
    {
        StartCoroutine(Reload());
    }

    void Update()
    {
        // Shoots
        if (Input.GetKeyDown(KeyCode.DownArrow) && munition > 0)
        {
            Instantiate(projectil, offlaunch.position, transform.rotation);
            munition--;
        }
    }

    IEnumerator Reload()
    {
        while (true)
        {
            if (munition == 0)
            {
                while (!Input.GetKeyDown(KeyCode.DownArrow) || munition < 3)
                {
                    yield return new WaitForSeconds(ReloadSpeed);
                    munition++;
                }
            }
            else
            {
                   yield return null;
            }
        }
    }
}

This waits some time then adds one to your munition, as long as there’s no input and your ammo isn’t full. @eduardochewaca