Publicado en 12 de mayo, 2017
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.
Comentarios recientes