Files
FueraDeEscala/Assets/PixPlays/Components/Scripts/VfxAddons/ParticleSystemStartStopLifetime.cs

39 lines
1.4 KiB
C#
Raw Normal View History

2026-03-29 23:03:14 -07:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace PixPlays.ElementalVFX
{
[RequireComponent(typeof(ParticleSystem))]
public class ParticleSystemStartStopLifetime : MonoBehaviour
{
[SerializeField] private float _StartLifetime;
[SerializeField] private float _StopLifetime;
private ParticleSystem _particleSystem;
private bool _playedFlag;
private void Awake()
{
_particleSystem = GetComponent<ParticleSystem>();
}
private void Update()
{
if (_particleSystem.isEmitting && !_playedFlag)
{
_playedFlag = true;
}
if (!_particleSystem.isEmitting && _playedFlag)
{
ParticleSystem.Particle[] particles = new ParticleSystem.Particle[_particleSystem.particleCount];
_particleSystem.GetParticles(particles);
for (int i = 0; i < particles.Length; i++)
{
float percentage = particles[i].remainingLifetime / particles[i].startLifetime;
particles[i].startLifetime = _StopLifetime;
particles[i].remainingLifetime = _StopLifetime * percentage;
}
_particleSystem.SetParticles(particles);
_playedFlag = false;
}
}
}
}