how do i fix my gun

heres my machine gun script

var range = 100.0; var fireRate = 0.05; var force = 10.0; var damage = 5.0; var bulletsPerClip = 40; var clips = 20; var reloadTime = 1.0; private var hitParticles : ParticleEmitter; var muzzleFlash : Renderer;

private var bulletsLeft : int = 0; private var nextFireTime = 0.0; private var m_LastFrameShot = -1;

function Start () { hitParticles = GetComponentInChildren(ParticleEmitter);

// We don't want to emit particles all the time, only when we hit something.
if (hitParticles)
    hitParticles.emit = false;
bulletsLeft = bulletsPerClip;

}

function LateUpdate() { if (muzzleFlash) { // We shot this frame, enable the muzzle flash if (m_LastFrameShot == Time.frameCount) { muzzleFlash.transform.localRotation = Quaternion.AngleAxis(Random.value * 360, Vector3.forward); muzzleFlash.enabled = true;

        if (audio) {
            if (!audio.isPlaying)
                audio.Play();
            audio.loop = true;
        }
    } else {
    // We didn't, disable the muzzle flash
        muzzleFlash.enabled = false;
        enabled = false;

        // Play sound
        if (audio)
        {
            audio.loop = false;
        }
    }
}

}

function Fire () { if (bulletsLeft == 0) return;

// If there is more than one bullet between the last and this frame
// Reset the nextFireTime
if (Time.time - fireRate > nextFireTime)
    nextFireTime = Time.time - Time.deltaTime;

// Keep firing until we used up the fire time
while( nextFireTime < Time.time && bulletsLeft != 0) {
    FireOneShot();
    nextFireTime += fireRate;
}

}

function FireOneShot () { var direction = transform.TransformDirection(Vector3.forward); var hit : RaycastHit;

// Did we hit anything?
if (Physics.Raycast (transform.position, direction, hit, range)) {
    // Apply a force to the rigidbody we hit
    if (hit.rigidbody)
        hit.rigidbody.AddForceAtPosition(force * direction, hit.point);

    // Place the particle system for spawing out of place where we hit the surface!
    // And spawn a couple of particles
    if (hitParticles) {
        hitParticles.transform.position = hit.point;
        hitParticles.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
        hitParticles.Emit();
    }

    // Send a damage message to the hit object          
    hit.collider.SendMessageUpwards("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
}

bulletsLeft--;

// Register that we shot this frame,
// so that the LateUpdate function enabled the muzzleflash renderer for one frame
m_LastFrameShot = Time.frameCount;
enabled = true;

// Reload gun in reload Time        
if (bulletsLeft == 0)
    Reload();           

}

function Reload () {

// Wait for reload time first - then add more bullets!
yield WaitForSeconds(reloadTime);

// We have a clip left reload
if (clips > 0) {
    clips--;
    bulletsLeft = bulletsPerClip;
}

}

function GetBulletsLeft () { return bulletsLeft; }

and my rocket launcher script

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

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);

    lastShot = Time.time;
    ammoCount--;
}

}

and my rocket

// The reference to the explosion prefab var explosion : GameObject; var timeOut = 3.0;

// Kill the rocket after a while automatically function Start () { Invoke("Kill", timeOut); }

function OnCollisionEnter (collision : Collision) { // Instantiate explosion at the impact point and rotate the explosion // so that the y-axis faces along the surface normal var contact : ContactPoint = collision.contacts[0]; var rotation = Quaternion.FromToRotation(Vector3.up, contact.normal); Instantiate (explosion, contact.point, rotation);

// And kill our selves
Kill ();    

}

function Kill () { // Stop emitting particles in any children var emitter : ParticleEmitter= GetComponentInChildren(ParticleEmitter); if (emitter) emitter.emit = false;

// Detach children - We do this to detach the trail rendererer which should be set up to auto destruct
transform.DetachChildren();

// Destroy the projectile
Destroy(gameObject);

} heres the url of a a video (http://www.youtube.com/watch?v=6-_eYpu84rw)

Ah! I see what you did. You put these scripts (which came from the FPS tutorial), and they didn’t work for your gun. I did the exact same thing as you did, and I found out why it’s like that.

Just look at the scripts. You’ll realize there is no input, nothing to actually fire the guns. In the FPS tutorial they had a script for that(called “PlayerWeapons” or something). Put the script in a parent object of the two weapons, and it will work.