Disable and clear Shuriken particles

I’ve got a projectile pooling script that puts unused objects far out of the rest of the scene. The projectiles I use have Shuriken particle effects. I am trying to stop and clear the particles after the projectile is released and before it is reused.

    BulletBehaviour bulletBehaviour = projectile.GetComponent<BulletBehaviour>();

    //Turn off particles
	bulletBehaviour.bullet.particleSystem.Stop();
	bulletBehaviour.bullet.particleSystem.Clear(true);

    //Move projectile to where it is needed
	projectile.rigidbody.velocity = Vector3.zero;
	projectile.transform.position = spawnPosition;
	projectile.transform.rotation = Quaternion.identity;

    //Turn on particles
	bulletBehaviour.bullet.particleSystem.Play();

I am seeing a trail as the bullet is moved from its offscreen position to spawnPosition. Whatever I try, I can’t get the particles to disappear. I’ve also tried

bulletBehaviour.bullet.particleSystem.enableEmission = false;

without success.

BulletBehaviour has a reference to bullet, which is the model that actually has the particle system.

This is the only solution I have found that works. After I turn off the particles and move the pooled projectile into place, I set it in motion with a force. The end of this piece of code uses Invoke to call a method that enables particles 0.01s later.

public override void InitialForce ( Vector3 fireDirection, float forceLevel  ){
	rigidbody.AddForce(fireDirection * projectingForce * forceLevel * (0.02f / Time.fixedDeltaTime));
	Invoke ("EnableTrail", 0.01f);	
}

public void EnableTrail()
{
	bullet.particleSystem.enableEmission = true;
}

Based on this working I thought adding a start delay to the main Shuriken module would fix it. It did not.

A bit late to respond, had a similar issue and just realized the problem. What you need to do is disable emission, either by using enableEmission or with emissionRate=0, and then set it back one frame after you moved the object. The trail only looks one frame back for interpolation.