/// ///////////////////////////////////////////////////////// /// Create common /// ///////////////////////////////////////////////////////// // Create single debris particle system public void CreateDebris(Transform host, RayfireDebris scr, MeshFilter emitMeshFilter, int emitMatIndex, ParticleSystem ps) { // Set main module RFParticles.SetMain(ps.main, scr.emission.lifeMin, scr.emission.lifeMax, scr.emission.sizeMin, scr.emission.sizeMax, scr.dynamic.gravityMin, scr.dynamic.gravityMax, scr.dynamic.speedMin, scr.dynamic.speedMax, 3.1f, scr.limitations.maxParticles, scr.emission.duration); // Emission over distance RFParticles.SetEmission(ps.emission, scr.emission.distanceRate, scr.amountFinal); // Emission from mesh or from impact point if (emitMeshFilter != null) { RFParticles.SetShapeMesh(ps.shape, emitMeshFilter.sharedMesh, emitMatIndex, emitMeshFilter.transform.localScale); } else { RFParticles.SetShapeObject(ps.shape); } // Inherit velocity RFParticles.SetVelocity(ps.inheritVelocity, scr.dynamic); // Size over lifetime RFParticles.SetSizeOverLifeTime(ps.sizeOverLifetime, scr.refScale); // Rotation by speed RFParticles.SetRotationBySpeed(ps.rotationBySpeed, scr.dynamic.rotationSpeed); // Collision RFParticles.SetCollisionDebris(ps.collision, scr.collision); // Noise RFParticles.SetNoise(ps.noise, scr.noise); // Renderer SetParticleRendererDebris(ps.GetComponent <ParticleSystemRenderer>(), scr); // Start playing ps.Play(); }