Example #1
0
 public static void ParticleCollisionSettings(this ParticleSystem PS,
                                              bool enabled        = true,
                                              float ColliderForce = 0f,
                                              float RadiusScale   = 0f,
                                              ParticleSystemCollisionMode Mode       = ParticleSystemCollisionMode.Collision3D,
                                              ParticleSystemCollisionQuality Quality = ParticleSystemCollisionQuality.High,
                                              ParticleSystemCollisionType Type       = ParticleSystemCollisionType.World,
                                              bool DynamicColliders = true,
                                              bool SendMessages     = true,
                                              string[] MaskNames    = null, // Set Outside, selects Default if none)
                                              float BounceMin       = 0f,
                                              float BounceMax       = 0f
                                              )
 {
     ParticleSystem.CollisionModule collisionModule = PS.collision;
     // Collision Settings
     collisionModule.enabled                = enabled;
     collisionModule.bounce                 = new ParticleSystem.MinMaxCurve(BounceMin, BounceMax);
     collisionModule.colliderForce          = ColliderForce;
     collisionModule.radiusScale            = RadiusScale;
     collisionModule.mode                   = Mode;
     collisionModule.quality                = Quality;
     collisionModule.type                   = Type;
     collisionModule.collidesWith           = GetLayer(MaskNames);
     collisionModule.enableDynamicColliders = DynamicColliders;
     collisionModule.sendCollisionMessages  = SendMessages;
 }
 protected override void ReadFromImpl(object obj)
 {
     base.ReadFromImpl(obj);
     ParticleSystem.CollisionModule uo = (ParticleSystem.CollisionModule)obj;
     enabled                = uo.enabled;
     type                   = uo.type;
     mode                   = uo.mode;
     dampen                 = uo.dampen;
     dampenMultiplier       = uo.dampenMultiplier;
     bounce                 = uo.bounce;
     bounceMultiplier       = uo.bounceMultiplier;
     lifetimeLoss           = uo.lifetimeLoss;
     lifetimeLossMultiplier = uo.lifetimeLossMultiplier;
     minKillSpeed           = uo.minKillSpeed;
     maxKillSpeed           = uo.maxKillSpeed;
     collidesWith           = uo.collidesWith;
     enableDynamicColliders = uo.enableDynamicColliders;
     maxCollisionShapes     = uo.maxCollisionShapes;
     quality                = uo.quality;
     voxelSize              = uo.voxelSize;
     radiusScale            = uo.radiusScale;
     sendCollisionMessages  = uo.sendCollisionMessages;
     colliderForce          = uo.colliderForce;
     multiplyColliderForceByCollisionAngle = uo.multiplyColliderForceByCollisionAngle;
     multiplyColliderForceByParticleSpeed  = uo.multiplyColliderForceByParticleSpeed;
     multiplyColliderForceByParticleSize   = uo.multiplyColliderForceByParticleSize;
 }
Example #3
0
        // Constructor
        public RFParticleCollisionDebris()
        {
            collidesWith = RFParticleCollisionWithType.Everything;
            quality      = ParticleSystemCollisionQuality.High;
            radiusScale  = 0.1f;

            dampenType = RFParticleCollisionMatType.ByProperties;
            dampenMin  = 0.1f;
            dampenMax  = 0.4f;

            bounceType = RFParticleCollisionMatType.ByProperties;
            bounceMin  = 0.2f;
            bounceMax  = 0.4f;
        }
Example #4
0
        // Copy from
        public void CopyFrom(RFParticleCollisionDebris source)
        {
            collidesWith = source.collidesWith;
            quality      = source.quality;
            radiusScale  = source.radiusScale;

            dampenType = source.dampenType;
            dampenMin  = source.dampenMin;
            dampenMax  = source.dampenMax;

            bounceType = source.bounceType;
            bounceMin  = source.bounceMin;
            bounceMax  = source.bounceMax;

            propertiesSet = source.propertiesSet;
        }
Example #5
0
 // Copy from
 public void CopyFrom(RFParticleCollisionDust source)
 {
     collidesWith = source.collidesWith;
     quality      = source.quality;
     radiusScale  = source.radiusScale;
 }
Example #6
0
 // Constructor
 public RFParticleCollisionDust()
 {
     collidesWith = RFParticles.RFParticleCollisionWithType.Everything;
     quality      = ParticleSystemCollisionQuality.High;
     radiusScale  = 1f;
 }