How can I make a particle effect turn on with a keystroke and last for a set duration?

I have seen some similar Q/A but havn’t been able to find one that covered exactly what I’m trying to accomplish.

I want my particles to turn on for a with the keystroke Q (same as ability) and then stay on for a duration of 3 seconds. The catch here is that I also don’t want it so that I could just spam Q and have it keep ‘refreshing’ so I essentially need to have it on a cooldown.

I am very new to scripting but I did try to find the answer first and haven’t been able.

I really would appreciate some help with this guys.

Here is an example:

#pragma strict
 
var isPlaying = false;
var coolDown = 1.5;

function Update() {
	if (!isPlaying && Input.GetKeyDown(KeyCode.Q)) {
		PlayPS();
	}
}

function PlayPS() {
	isPlaying = true;
	particleSystem.Play();
	yield WaitForSeconds(3.0);
	particleSystem.Stop();
	yield WaitForSeconds(coolDown);
	isPlaying = false;
}

Note that your question was asked 14 hours ago and only published 2 hours ago. That means your question was in the moderation queue for 12 hours. This happens when a number of moderators pass it over for publication. The problem is that you essentially asked for a script. If Send Message had been working in the moderation queue, likely your question would have been rejected. The moderators are looking for some effort beyond saying you could not find a script that does exactly what you want…an attempt at a script even if it does not work, or references to specific functions that show you attempted something more than a script search.