Quick answer: Triggers module → drag colliders into the Colliders list. Set Inside / Outside / Enter / Exit to Callback. Implement OnParticleTrigger; call ps.GetTriggerParticles to read affected particles.
You want particles destroyed when entering a damage zone. Triggers module enabled. OnParticleTrigger never fires.
The Symptom
OnParticleTrigger callback not invoked despite particles overlapping a collider. Colliders module is on; visual collisions work for bounce/kill but not the trigger event.
The Fix
Particle System → Triggers module:
Inside: Callback
Outside: Ignore
Colliders:
[0] DamageZoneCollider
Each collider must be explicitly listed. Set the action to Callback for the events you care about.
void OnParticleTrigger()
{
var ps = GetComponent<ParticleSystem>();
List<ParticleSystem.Particle> inside = new();
int count = ps.GetTriggerParticles(ParticleSystemTriggerEventType.Inside, inside);
for (int i = 0; i < count; i++)
{
var p = inside[i];
p.remainingLifetime = 0; // kill
inside[i] = p;
}
ps.SetTriggerParticles(ParticleSystemTriggerEventType.Inside, inside);
}
Verifying
Spawn particles into the trigger zone. They should disappear instantly. Print on entry to confirm OnParticleTrigger fires.
“Colliders listed. Action Callback. GetTriggerParticles works.”
Related Issues
For sub-emitter inheritance, see sub-emitter. For burst not firing, see burst.
List the colliders. Read the particles.