void updateParticles() { float speedMultiplier = Player.instance.normalizedSpeed; for (int i = 0; i < _particles.Length; i++) { ParticleCacher pc = _particles[i]; var main = pc.system.main; main.simulationSpeed = speedMultiplier; float baseSpeed = pc.defaultVelocityScale; pc.renderer.velocityScale = baseSpeed * (1f + (speedMultiplier - 1f) / 2f); } }
void Awake() { Assert.IsNull(inst, "Only one instance allowed!"); inst = this; ParticleSystem[] particles = transform.parent.GetComponentsInChildren <ParticleSystem>(); _particles = new ParticleCacher[particles.Length]; for (int i = 0; i < particles.Length; i++) { ParticleCacher pc = new ParticleCacher(); pc.system = particles[i]; pc.renderer = particles[i].GetComponent <ParticleSystemRenderer>(); pc.defaultVelocityScale = pc.renderer.velocityScale; _particles[i] = pc; } initLanes(); }