Unity- Hacer que el ParticleSystem ignore la pausa o el timeScale

¿Como hacer que las partículas funcionen en pausa? o ¿Como hacer que un el particlesystem ignore la escala de tiempo? Este es una pregunta un poco recurrente entre mis alumnos y en algunos foros y la respuesta es bastante sencilla.

El Time.timeScale se encarga de manejar a la velocidad que se actualiza el mundo y por defecto es un valor de 1, si este se vuelve 0, las animaciones, físicas y partículas se congelan porque dependen de este. Pero existe una manera de que las partículas puedan ignorar la escala de tiempo y es simplemente forzar su actualización con un script que tenga el siguiente codigo:


//Referencia a las particulas
ParticleSystem parti;

private void Awake()
{
parti = GetComponent<ParticleSystem>();
}

void Update()
{
parti.Simulate(Time.unscaledDeltaTime, true, false);
}

Y poner el script en las partículas, este avanza porque usamos el unscaledDeltaTime que como su nombre lo indica no le afecta la escala de tiempo y usamos la función de las partículas que los sigue reproduciendo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.