I have this script:
var projectile : Rigidbody;
var initialSpeed = 20.0;
var reloadTime = 0.5;
var ammoCount = 20;
private var lastShot = -10.0;
var MuzzleParticles : GameObject;
function Start () {
MuzzleParticles.particleEmitter.emit = false;
}
function Fire () {
// Did the time exceed the reload time?
if (Time.time > reloadTime + lastShot && ammoCount > 0) {
// 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);
audio.Play();
lastShot = Time.time;
ammoCount--;
MuzzleParticles.particleEmitter.emit = true;
}
else {
MuzzleParticles.particleEmitter.emit = false;
}
}
It's a variation of the FPS tut's Rocket Launcher Script. What i'm trying to get happen, is that, user presses fire, particles (MuzzleParticles) Start, but if he's not firing, turn them off. However, if i keep the trigger down, sometimes the particles carry on emitting. What can I do to fix this?