- Home /
Make a particle system with particles that stick to everything once they collide
What i want is particles (for example from an explosion) that are effect by gravity, but once they collide with an object, it should remain at that place for the rest of the game. Furthermore once the object the particle "attached" itself to moves, (eg. the player) the particle should obviously move as well and not hover in the air at the position it collided once.
So i sort of got the first thing to work with two Particle-Systems that are more or less identical. So if a particle from the explosion hits a collider the second particle System moves to that position and emits one particle, this time without any collisions or any physics like gravity. Here is some Code:
void OnParticleCollision(GameObject col) {
ParticlePhysicsExtensions.GetCollisionEvents(SplatterParticles, col, collisionEvents);
for (int i = 0; i < collisionEvents.Count; i++) {
DecalParticles.GetComponent<DecalSystem>().DoDecals(collisionEvents[i]);
}
}
and the doDecals Function:
public void DoDecals(ParticleCollisionEvent collisionEvent) {
decalParticleSystem.transform.position = collisionEvent.intersection;
decalParticleSystem.Emit(1);
}
Now that seems to work somehow but sometimes it looks like particles sometimes are emited at positions where they should not be and sometimes the other way around.
Thats when I discovered the "Dampen" parameter in the Collision Module, which sort of works the same as long as the particle is not affected by gravity. If there is no gravity involved the particles velocity drops to zero on colliding letting it effectively stay at that place forever. However on the inital emmiting face the particles are supposed to be affected by gravity and not just fly off endlessly.
So my first Question is: Is there a way to set the Gravitymodifier to zero for each particle (and not the entire System) once it collides. Or maybe some other way to achive what i want to do that i did not think of?
Second question: Is there a way to make the particles move with the object it collided with, as if the particle would be a child of that object? I really have no clue how something like that would work or if its even possible, so help would be much appreciated.
Your answer
Follow this Question
Related Questions
Keep particles to defined area, destroy on collision 0 Answers
How can I apply gravity to each particle within a 'Gravity Zone' region? 0 Answers
Change particle bounce relative to the speed of the GameObject colliding with them? 1 Answer
Constant velocity when moving and after collision stopping immediately ... How to ? 0 Answers
Precise Collision Detection 0 Answers