How to pause emitter in new Particle System?

Is there anyway to only pause the emitter instead of the whole system?

I’m using particle system to create weather effects, like snowing and raining, but the problem is, when I pause the particle system, both particles and emitter are paused, so the raindrops and snows are frozen in the mid-air, which is not desirable.

Similarly, stop doesn’t work as expected either. When the particle system is stopped, all of the particles are wiped out immediately, instead of waiting for their lifetime.

If I cannot control the emitter, how do I achieve such effect using particle system?

Before you answer, please note that none of these methods works:

  1. Emit() function does not follow the particle system’s modules.
  2. Stop(), change emissionRate, playbackSpeed, enableEmission, will kill the particles
  3. Pause() will freeze the particles as I said above
  4. Stimulate() will pause the particles
  5. Particle system will stop if it emits more than maxParticles, so changing it will stop the system

particleSystem.Stop();
Here that stops the emission and lets the currently active particles live.

Add a Particle System to a game object and this script:

void Update () {
		if(Input.GetKeyDown(KeyCode.Space))
			particleSystem.Stop();
		if(Input.GetKeyUp(KeyCode.Space))
			particleSystem.Play ();
	}

When you hold space the emitter pauses, while the particles keep flying.

Using Unity 2018.3 on both Mac & PC:

On both the code is automatically changed.
It works on PC, but only works sporadically on Mac.