/// <summary> /// Create VGO_PS_VelocityOverLifetimeModule from VelocityOverLifetimeModule. /// </summary> /// <param name="module"></param> /// <returns></returns> protected virtual VGO_PS_LimitVelocityOverLifetimeModule CreateVgoModule(LimitVelocityOverLifetimeModule module) { var vgoModule = new VGO_PS_LimitVelocityOverLifetimeModule() { enabled = module.enabled, separateAxes = module.separateAxes, space = module.space, dampen = module.dampen, drag = VgoParticleSystemMinMaxCurveConverter.CreateFrom(module.drag), dragMultiplier = module.dragMultiplier, multiplyDragByParticleSize = module.multiplyDragByParticleSize, multiplyDragByParticleVelocity = module.multiplyDragByParticleVelocity, }; if (module.separateAxes) { vgoModule.limitX = VgoParticleSystemMinMaxCurveConverter.CreateFrom(module.limitX); vgoModule.limitY = VgoParticleSystemMinMaxCurveConverter.CreateFrom(module.limitY); vgoModule.limitZ = VgoParticleSystemMinMaxCurveConverter.CreateFrom(module.limitZ); vgoModule.limitXMultiplier = module.limitXMultiplier; vgoModule.limitYMultiplier = module.limitYMultiplier; vgoModule.limitZMultiplier = module.limitZMultiplier; } else { vgoModule.limitX = VgoParticleSystemMinMaxCurveConverter.CreateFrom(module.limit); vgoModule.limitXMultiplier = module.limitMultiplier; } return(vgoModule); }
/// <summary> /// Set ParticleSystem limitVelocityOverLifetime field value. /// </summary> /// <param name="particleSystem"></param> /// <param name="vgoModule"></param> protected virtual void SetModuleValue(ParticleSystem particleSystem, VGO_PS_LimitVelocityOverLifetimeModule vgoModule) { if (vgoModule == null) { return; } LimitVelocityOverLifetimeModule module = particleSystem.limitVelocityOverLifetime; module.enabled = vgoModule.enabled; module.separateAxes = vgoModule.separateAxes; if (vgoModule.separateAxes) { module.limitX = VgoParticleSystemMinMaxCurveConverter.CreateMinMaxCurve(vgoModule.limitX); module.limitY = VgoParticleSystemMinMaxCurveConverter.CreateMinMaxCurve(vgoModule.limitY); module.limitZ = VgoParticleSystemMinMaxCurveConverter.CreateMinMaxCurve(vgoModule.limitZ); module.limitXMultiplier = vgoModule.limitXMultiplier; module.limitYMultiplier = vgoModule.limitYMultiplier; module.limitZMultiplier = vgoModule.limitZMultiplier; } else { module.limit = VgoParticleSystemMinMaxCurveConverter.CreateMinMaxCurve(vgoModule.limitX); module.limitMultiplier = vgoModule.limitXMultiplier; } module.space = vgoModule.space; module.dampen = vgoModule.dampen; module.drag = VgoParticleSystemMinMaxCurveConverter.CreateMinMaxCurve(vgoModule.drag); module.dragMultiplier = vgoModule.dragMultiplier; module.multiplyDragByParticleSize = vgoModule.multiplyDragByParticleSize; module.multiplyDragByParticleVelocity = vgoModule.multiplyDragByParticleVelocity; }