x


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

more ▼

asked Apr 01, 2010 at 07:07 PM

Apexuni gravatar image

Apexuni
72 38 29 36

(comments are locked)
10|3000 characters needed characters left

2 answers: sort voted first

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;
     }
}
more ▼

answered Apr 01, 2010 at 08:38 PM

Jason_DB gravatar image

Jason_DB
2.1k 6 15 41

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

Apr 02, 2010 at 07:10 AM Apexuni

i don't know i'm right or wrong

Apr 02, 2010 at 07:22 AM Apexuni
(comments are locked)
10|3000 characters needed characters left

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;
     }
}
more ▼

answered Apr 02, 2010 at 08:41 AM

Apexuni gravatar image

Apexuni
72 38 29 36

@ DastardlyBanana thaks buddy

Apr 02, 2010 at 08:42 AM Apexuni
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x8958
x279
x94

asked: Apr 01, 2010 at 07:07 PM

Seen: 2083 times

Last Updated: Apr 02, 2010 at 08:13 AM