Я нашел много тем, в которых говорилось, что если я хочу удалить конкретную частицу, мне просто нужно установить ее LifeTime
в -1
.
Я знаю, что мой цикл работает правильно, поскольку движение каждой частицы идет по плану, И я вижу строку отладки «удалить частицу» в своем журнале в тот момент, когда она достигает места назначения. Изменилось ли что-то со временем, или я упустил что-то простое?
Я использую Unity 5,4,3f1 Personal
void Update ()
{
if(Input.GetKeyDown(KeyCode.Space)) PlayParticleEffect();
if (particleSystem != null) {
particles = new ParticleSystem.Particle[particleSystem.particleCount];
int count = particleSystem.GetParticles (particles);
for (int i = 0; i < count; i++) {
ParticleSystem.Particle particle = particles [i];
float dist = Vector3.Distance (particleTarget.transform.position, particle.position);
if (dist > 0.1f) {
particle.position = Vector3.MoveTowards (particle.position, particleTarget.transform.position, Time.deltaTime * 10);
particles [i] = particle;
} else {
particle.lifetime = -0;
Debug.Log ("remove particle");
}
}
particleSystem.SetParticles (particles, count);
}
}