private void ConfigureParticleSystem(ParticleSystem ps, ParticlesConfig config) { if (ps != null && config != null) { var main = ps.main; var emission = ps.emission; var renderer = ps.GetComponent <ParticleSystemRenderer>(); main.startColor = config.color; main.startLifetime = emissionConfig.startLifetime; main.simulationSpace = emissionConfig.simulationSpace; main.startSize = emissionConfig.startSize; main.startSpeed = emissionConfig.startSpeed; main.gravityModifier = emissionConfig.gravityModifier; emission.rateOverTime = emissionConfig.emissionRate; renderer.sortingLayerID = config.sortingLayer; renderer.sortingOrder = config.orderInLayer; renderer.material = config.renderMaterial; if (ps.randomSeed != randomSeed) { if (ps.isPlaying) { ps.Stop(); ps.randomSeed = randomSeed; ps.Play(); } else { ps.randomSeed = randomSeed; } } } }
//Instantiate a Prefab which it has a ParticleConfig and activates it. private void CreateParticles(ParticlesConfig pc) { ParticleSystem go = Instantiate <ParticleSystem>(pc.particleSystem, Camera.main.transform); go.gameObject.SetActive(true); }