using System; using UnityEngine; namespace DefaultNamespace { [RequireComponent(typeof(ParticleSystem))] public class OneShot : MonoBehaviour { private ParticleSystem _particleSystem; private ParticleSystem.MainModule _main; private ParticleSystem.ColorOverLifetimeModule _colorOverLifetime; private void Awake() { _particleSystem = GetComponent(); _main = _particleSystem.main; _main.loop = false; _main.playOnAwake = false; _colorOverLifetime = _particleSystem.colorOverLifetime; // _colorOverLifetime. } private void Update() { if (Input.GetButtonDown("Fire1")) { _particleSystem.Play(); // play particle system with settings // _particleSystem.Emit(100); // emit 100 particles at once } ParticleSystem.Particle[] particles = new ParticleSystem.Particle[_particleSystem.main.maxParticles]; int usedParticles = _particleSystem.GetParticles(particles); for (int i = 0; i < usedParticles; i++) { particles[i].position += Vector3.up * 0.01f; } _particleSystem.SetParticles(particles); } } }