- Home /
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
Answer by Jason_DB · Apr 01, 2010 at 08:38 PM
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 try tp put this script but its not working i upload my rocket launcher script in my question check my Que. thanks for helping me
Answer by Apexuni · Apr 02, 2010 at 08:41 AM
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;
}
}
Your answer