/// ///////////////////////////////////////////////////////// /// Impact /// ///////////////////////////////////////////////////////// // Create single debris particle system public static void CreateDebrisImpact(RayfireDebris debris, Vector3 impactPos, Vector3 impactNormal) { // Particle system ParticleSystem ps = debris.CreateParticleSystem(debris); // Align over impact debris.hostTm.position = impactPos; debris.hostTm.LookAt(impactPos + impactNormal); // Set amount debris.amountFinal = debris.emission.burstAmount; // Create debris debris.CreateDebris(debris.rigid.transForm, debris, null, -1, ps); }
// Create single debris particle system public static void CreateDebrisRigid(RayfireDebris target) { // No particles if (target.amountFinal < target.limitations.minParticles && target.emission.distanceRate == 0) { return; } // Particle system ParticleSystem ps = target.CreateParticleSystem(target); // Get emit material index int emitMatIndex = GetEmissionMatIndex(target.rigid.meshRenderer, target.emissionMaterial); // Create debris target.CreateDebris(target.rigid.transForm, target, target.rigid.meshFilter, emitMatIndex, ps); }