예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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;
        }