- Home /
 
FPS tutorial HELP!!
How do I fix this, The muzzle flash wont appear in game

 
                var range = 100.0;
 var fireRate = 0.05;
 var force = 10.0;
 var damage = 5.0;
 var bulletsPerClip = 40;
 var clips = 20;
 var reloadTime = 0.5;
 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;
 }
  
               If you post the code of making the $$anonymous$$uzzle Flash to appear, maybe people will be able to help?
Answer by AutoFredrik · Mar 21, 2013 at 07:46 PM
I had the same problem when I followed the FPS-tutorial. What you need to do is: Select the "muzzle_flash" game object. In the material settings, change the shader to particles > additive. This should fix the problem. The muzzle flash will only be visible when you shoot :) Also, I would like to warn you that the tutorial is old and outdated. You might encounter more problems in the future, so good luck!
O$$anonymous$$G That fixed it, I just wanted to have a muzzle flash. Thank you very much!!!!! :) :) :)
Your answer
 
             Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Particles are off when I shoot 1 Answer
How to display Gui for Ammo and ammo left 0 Answers
Missile launcher is malfunctioning 2 Answers
Unity FPS question 0 Answers