can i delay the script in the 'function update'?

#pragma strict

var projectile : GameObject;
var fireRate : float = 0.5;
internal var nextFire : float;
var speed : float = 5;


function Start () {

}
 
function Update(){

	//"Fire1" is Left Mouse Button or Left Ctrl 
	if (Input.GetButton ("Fire1") && Time.time > nextFire){
		nextFire = Time.time + fireRate;
		var clone : GameObject = Instantiate (projectile, transform.position, transform.rotation);
		clone.rigidbody.velocity = transform.TransformDirection(Vector3 (speed,0,0));
		Physics.IgnoreCollision(clone.collider, transform.root.collider);
		
	}
}

sorry i dont know how to put the script in properly to unity answers.

ok, so i have this script on a ‘cube’ and its for a shotgun shell to be ejected from my shotgun.

i also have the same script on another ‘cube’ for the round itself, just with a different axis for “speed”.

both the shell and the round exit the gun from the right places, but both at the same time.

i want to delay the shotgun shell from ejecting for a second or two.

how would i go about this.

thanks everyone.

You can’t delay the Update() function, but you can use co-routines:

You don’t need coroutines. Just Invoke the method after your chosen delay.

function Update(){
    //"Fire1" is Left Mouse Button or Left Ctrl
    if (Input.GetButton ("Fire1") && Time.time > nextFire){
        Invoke("Eject", 1.5);
    }
}

function Eject(){
    nextFire = Time.time + fireRate;
    var clone : GameObject = Instantiate (projectile, transform.position,    transform.rotation);
    clone.rigidbody.velocity = transform.TransformDirection(Vector3 (speed,0,0));
    Physics.IgnoreCollision(clone.collider, transform.root.collider);
}