Wait to shoot again.

Hi, How can I shoot 1 bullet and then wait 1 second and then shoot 1 bullet again??
right now when I press fire it shoots ~1000 bullets in 1 second…
My script is:

public var snowballPrefab : Transform;

public var snowballSpeed : float = 6000;

function Update(){
    if(Input.GetButton("Fire1"))
        {
            if(!snowballPrefab || !snowballSpeed)
            {
                Debug.Log("[Shoot] 'bulletPrefab' or 'bulletSpeed' is undefined");
            }else{
                var snowballCreate = Instantiate(snowballPrefab, GameObject.Find("Main Camera").transform.position, Quaternion.identity);
                snowballCreate.rigidbody.AddForce(transform.forward * snowballSpeed);

            }
			
        }
}

public var snowballPrefab : Transform;

    public var snowballSpeed : float = 6000;

    var ReadyToFire = true;
    
    function Update(){


if(ReadyToFire == true) {

        if(Input.GetButton("Fire1"))
            {

               waitToFireAgain();
    
                if(!snowballPrefab || !snowballSpeed)
                {
                    Debug.Log("[Shoot] 'bulletPrefab' or 'bulletSpeed' is undefined");
                }
               else{
                    var snowballCreate = Instantiate(snowballPrefab, GameObject.Find("Main Camera").transform.position, Quaternion.identity);
                    snowballCreate.rigidbody.AddForce(transform.forward * snowballSpeed);
    
                }
    
            }
    }
}


function waitToFireAgain() {

ReadyToFire = false;

yield WaitForSeconds (5);

ReadyToFire = true;


}

Try this code out and tell me if it works.

WaitForSeconds might be what your looking for.

you should be able to adapt the solution from this similar question I answered last week.

var snowballPrefab : Transform;
var snowballSpeed : float = 6000;
var reloadTime = 1.0;
var lastShot = -10.0;

function Update (){
if(Input.GetButton("Fire1")){
    if(Time.time > reloadTime + lastShot) {
        if(!snowballPrefab || !snowballSpeed)
            {
                Debug.Log("[Shoot] 'bulletPrefab' or 'bulletSpeed' is undefined");
            }else{
                var snowballCreate = Instantiate(snowballPrefab, GameObject.Find("Main Camera").transform.position, Quaternion.identity);
                snowballCreate.rigidbody.AddForce(transform.forward * snowballSpeed);

            }
    lastShot = Time.time;
    }
}

public float nextShootSec;

public GameObject bulletPrefab; ( Put the bullet mesh!!)

public GameObject bulletUnit;

public GameObject shootPoint; ( Put the Shooting Position mesh!!)

void Update() {

Shootingbullet();

}

void Shootingbullet() {

if(Time.time > nextShootSec) {

bulletUnit = Instantiate (bulletPrefab, shootPoint.transform.position,
Quaternion.Euler(A, B, C)) as GameObject;

nextShootSec = Time.time + 0.6f;

}

}

( “A, B, C - Be replaced, depending on the situation”)