Trouble timing an emission (false/true bool) with variables

I’m having a little trouble making this work. No emission appears. I have tried using different functions for particle systems. And for some reason I cannot use particle emitter. Here is my code, someone please help! I’m trying to give the effect that a spaceship is shooting, but it needs to be timed so I can adjust it using the variables whenever.


using UnityEngine;
using System.Collections;

public class simplenothingshoot : MonoBehaviour {
	
	public ParticleSystem leftgun;
	public ParticleSystem rightgun;

	public float ShootTimer = 0;
	public float ShootCooler = 0.9f;
	public float beamFlashCooler = 0.5f;
	public float beamFlashTimer = 0;
	public float KeyCooler = 1;
	public float KeyTimer = 0;

	// Use this for initialization
	void Start () {
			leftgun.enableEmission = false;
			rightgun.enableEmission = false;
	}
	
	// Update is called once per frame
	void Update () {
		
			if( KeyTimer > 0){
		   		KeyTimer -= Time.deltaTime;	
					}
		
				if( KeyTimer < 0){	
					KeyTimer = 0;	
						}
		
		
			if( beamFlashTimer > 0){
		  			 beamFlashTimer -= Time.deltaTime;	
					BeamFlashShow();
						}
		
		if( beamFlashTimer < 0){
			beamFlashTimer = 0;	
				}
		
		if(ShootTimer > 0){
			ShootTimer -= Time.deltaTime;
		}
		
		
		if( ShootTimer < 0){
			ShootTimer = 0;	
				}
		
		if(KeyTimer == 0){
		if(Input.GetMouseButtonDown(0)){
		if( ShootTimer == 0){
		
			
				
				ShootTimer = ShootCooler;
			    KeyTimer = KeyCooler;
					
		}
			
			if( beamFlashTimer  == 0 ){
				BeamFlashShow();
					beamFlashTimer = beamFlashCooler;
				}
			}
			
		}
	}
	
	
	void BeamFlashShow(){
		
		
		if( beamFlashTimer > 0){
			
		
			leftgun.enableEmission = false;
			rightgun.enableEmission = false;
			
		}
		
		if( beamFlashTimer == beamFlashCooler){
			
			leftgun.enableEmission = true;
			rightgun.enableEmission = true;
			
		
		}
		
	}
}

Have you set the particle system on Loop?

If you disable emission, then the particle system stops firing (obviously) but if it’s not set on loop it fires once, immediately stops, and then never fires again.

You could try using particleSystem.Emit(), or set it on loop and disable/enable emission.

Hope it at least helps. This was a pain for me lol