Something odd on script enabled particle system

Something most odd is happening to a particle system on a character. I have uploaded a screenshot because I can’t quite describe it.

The characters are identical with the exception that the the character to the right has the particle effect enabled from the start and the character to the left has his particle effect enabled from a script.

The particle system starts off fine but then it’s as if it restarts higher up and then gradually comes down again. It is as if the particle system is moving, although it’s coordinates do not actually change and the particle effects are exactly the same on each character!

I have tried both enabling the game object and playing the particle system through the script and the same thing happens. I also debugged and found that these are only firing once and not multiple times as I had first thought.

I also have a link to the animated gif because I think it would show much better what is actually happening:

Animation of issue here

Any thoughts/help would be most appreciated.

As soon as I posted this I had a brainwave, and it appears to have worked. It appears that the stored energy on the rigidbody was causing this odd effect. I already have a function to remove the stored energy on death but I have also done it as soon as the fire is enabled and it appears to have worked.

	void RemoveVelocity() {
		rbArray = GetComponentsInChildren<Rigidbody>();
		foreach (Rigidbody rb in rbArray) {
			rb.velocity = Vector3.zero;
		}
	}

The only thing I’m not sure about is, is this the most efficient way of doing things?