Advertisement
Weltor

Interactive Particles Kill On Trigger

May 30th, 2022
879
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.07 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class KillParticlesOnTrigger : MonoBehaviour {
  6.  
  7.     [Header("Settings")]
  8.     [SerializeField] private float onExitRemainingLifeTime = 0;
  9.  
  10.     [Header("References")]
  11.     [SerializeField] private new ParticleSystem particleSystem;
  12.  
  13.     private void OnParticleTrigger() {
  14.         List<ParticleSystem.Particle> particles = new List<ParticleSystem.Particle>();
  15.         if (particleSystem.GetTriggerParticles(ParticleSystemTriggerEventType.Exit, particles) <= 0) { return; }
  16.         ParticleSystem.Particle[] particlesArray = particles.ToArray();
  17.  
  18.  
  19.         for (int i = 0; i < particlesArray.Length; i++) {
  20.             if (particlesArray[i].remainingLifetime <= onExitRemainingLifeTime) { continue; }
  21.             particlesArray[i].remainingLifetime = onExitRemainingLifeTime;
  22.         }
  23.  
  24.         particles = new List<ParticleSystem.Particle>(particlesArray);
  25.         ParticlePhysicsExtensions.SetTriggerParticles(particleSystem, ParticleSystemTriggerEventType.Exit, particles);
  26.     }
  27.  
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement