# delay question ??

i am using FPS sentry Gun & rocket Luncher script my question is how can i put delay between 2 bullets

like fire 1 bullet & stop 3sec & then fire 2 bullet my rocket launcher script

``````   var projectile : Rigidbody;
var initialSpeed = 20.0;
var reloadTime = 0.5;
var ammoCount = 20;
private var lastShot = -10.0;
private var nextFireTime : float;
var fireDelay : float;

function Fire() {
if(Time.time > nextFireTime){
// create a new projectile, use the same position and rotation as the Launcher.
var instantiatedProjectile : Rigidbody = Instantiate (projectile, transform.position, transform.rotation);

// Give it an initial forward velocity. The direction is along the z-axis of the missile launcher's transform.
instantiatedProjectile.velocity = transform.TransformDirection(Vector3 (0, 0, initialSpeed));

// Ignore collisions between the missile and the character controller
Physics.IgnoreCollision(instantiatedProjectile.collider, transform.root.collider);

lastShot = Time.time;
//ammoCount--;
nextFireTime = Time.time + fireDelay;
}
}

``````

thanks

What you can do is every time you fire define the "nextFireTime" as the current time + your desired delay, and then only fire after that time.

``````private var nextFireTime : float;
var fireDelay : float;

Function Fire() {
if(Time.time > nextFireTime){
//fire the bullet here
//now set the nextFireTime
nextFireTime = Time.time + fireDelay;
}
}

``````

This would make the bullet.rocket only able to fire after the delay. You could also do this, which would call the fire function automatically with the delay:

``````Function Update() {
if(Time.time > nextFireTime){
Fire();
//now set the nextFireTime
nextFireTime = Time.time + fireDelay;
}
}

``````

i got it in a Sentry Gun script just add this

``````private var nextFireTime : float;
var fireDelay : float;

``````

& update section

``````Function Update() {
// your old script
if(Time.time > nextFireTime){
SendMessage ("Fire");
nextFireTime = Time.time + fireDelay;
}
}

``````