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;
 }