Quick answer: When returning a Particle System to the pool, call Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear) and Clear(true) to flush trail buffers. On reuse, Clear(true) then Play(true) for a fresh trail.
Here is how to fix Unity pooled Particle System effects whose trail tails clip or vanish unexpectedly when the pool reuses an instance. Trail buffers persist between activations; without explicit clearing, residual segments interfere with the next emit.
The Symptom
Bullet trail prefab in a pool. First spawn looks correct. Second spawn from the same pooled instance shows a clipped trail or no trail at all for the first half of its life.
What Causes This
Trail buffer persistence. Trail vertices remain in GPU buffer between activations.
Stop/Clear order. Stop alone leaves trails to fade naturally; Clear without Stop produces immediate cuts.
Sub-emitter trails. Sub-emitter trails compound the issue.
The Fix
Step 1: Cleanly stop on return to pool.
using UnityEngine;
public class PooledVfx : MonoBehaviour
{
private ParticleSystem ps;
void Awake() { ps = GetComponent<ParticleSystem>(); }
public void ReturnToPool()
{
ps.Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear);
ps.Clear(true);
gameObject.SetActive(false);
}
public void SpawnAt(Vector3 pos)
{
transform.position = pos;
gameObject.SetActive(true);
ps.Clear(true); // flush stale buffer
ps.Play(true); // fresh start
}
}
Pass true to act on children (sub-emitters, child PS).
Step 2: For Trail Renderer (separate component), call Clear.
var trail = GetComponent<TrailRenderer>();
trail.Clear(); // flushes trail vertices
Step 3: Position before activation. Set transform.position before SetActive(true). Otherwise the first frame’s trail starts at the previous position, drawing a smear from old to new.
Step 4: Use particle pooling helpers. Unity 2021+ offers ObjectPool<T> in UnityEngine.Pool. Combine with the Reset method for centralized handling.
Step 5: Test rapid reuse. Spawn the same pooled effect 10 times in a second from different positions. Trails should each look fresh, no smearing or stale segments.
“Stop + Clear before disable. Clear + Play after activate. Position first. Trails reset cleanly.”
Related Issues
For Stop Action issues, see Stop Action Not Disabling. For trail rendering through walls, see Trail Through Walls.
Stop + Clear pre-disable. Clear + Play post-enable. Trails do not smear.