- Home /
 
 
               Question by 
               TheShadyColombian · Oct 28, 2014 at 05:20 PM · 
                variabletimer  
              
 
              variable reset not working.
i'm having a bit of a stupid problem, maybe someone can notice something i haven't. whenever i shoot a bullet, i want the timer to reset whenever I shoot, but its not working.
 using UnityEngine;
 using System.Collections;
 
 public class ExperimentalMachineGun : MonoBehaviour {
 
     public Animator Fire; 
     public AudioClip MinigunFire;
     public float ProjectileSpeed;                // Reference to the player's animator component.
     public float rateOfFire;
     public bool UseTouchControl;
     public bool JoystickIsTapped;
     public GameObject Flame;
     public GameObject BarrelTip;
     public GameObject primaryProjectile;
     public GameObject ShootJoystick;
     public GameObject TestEnemyRaycast;
 
     public ExperimentalDeath PlayerScript;
     public JoystickControl JoystickControlScript;
     public ParticleSystem Particles;
 
     public float rateOfFireTimer = 0.0f;
 
     void Start () {
 
         Fire = GameObject.Find ("CurrentWeapon").GetComponentInChildren<Animator> ();
 
         JoystickControlScript = GameObject.Find ("MonstercatCharBase").GetComponent<JoystickControl> ();
 
         Particles = GetComponent<ParticleSystem>();
 
         BarrelTip = GameObject.Find("BarrelTip");
 
     }
     //private bool isFiring = false
 
     void Update () {
 
         PlayerScript = GameObject.FindGameObjectWithTag("Player").GetComponentInChildren<ExperimentalDeath> ();
 
         if (ShootJoystick.GetComponent<Joystick> ().tapCount > 0){
             JoystickIsTapped = true;
         } else {
             JoystickIsTapped = false;
         }
 
         //this is a counter that tells you the time in seconds from the last projectile fired
         rateOfFireTimer += Time.deltaTime;
 
         if (UseTouchControl == false) {
             //Fire Primary Weapon. I do (1/rateOfFire) so that you can enter a number like 10 in the inspector to mean 10 per second
             if (rateOfFireTimer >= rateOfFire) {
 
                 if(Input.GetKey (KeyCode.Mouse0)){
 
                     FirePrimaryWeapon (); 
 
                     PlayerScript.Shooting = true; 
 
                     Fire.SetBool ("Fire", true);
 
                 } else {
 
                     PlayerScript.Shooting = false;
 
                     Fire.SetBool ("Fire", false);
 
 
                 }
             }
         }
 
         if (UseTouchControl == true && JoystickIsTapped == true){
 
             if(JoystickIsTapped == true){
 
                 rateOfFireTimer = 0;
 
                 FirePrimaryWeapon (); 
 
                 PlayerScript.Shooting = true;
 
                 Fire.SetBool ("Fire", true);
 
             } else {
             
                 PlayerScript.Shooting = false;
 
                 Fire.SetBool ("Fire", false);
 
             
             }
 
         }
     }
     
     void FirePrimaryWeapon() {
 
         PlayerScript.Shooting = true;
 
         Fire.SetBool ("Fire", true);
 
         //Particles;
 
         //this fires the projectile
         Instantiate (primaryProjectile, transform.position , transform.rotation);
 
         Instantiate (Flame, BarrelTip.transform.position, transform.rotation);
 
         //this plays the sound
         //AudioSource.PlayClipAtPoint(MinigunFire, transform.position);
 
         //this resets the timer
                 rateOfFireTimer = 0.0f;
     }
 }
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
How to make a variable decrease every five seconds? 3 Answers
how to make a varied countdown timer 1 Answer
Why is my timer reseting itself? 0 Answers
Game Time with variable count speed 1 Answer