- Home /
One-way physics reaction : Objects reacting with physics to player without player being affected
Hi.
When the square sprite dies in my game, he breaks apart into many little sprites, each with a 2d rigidbody. The player square respawns and can once again move about.
The result I am after is that the player can run into the amassing debris left from previous deaths without it affecting their movement or physics. I want the physics reaction to take place on the debris, but not on the player. Is this possible?
In my head I see the debris flying away as if being kicked, or flying away when squashed against a wall but it is imperative it doesn't impact the player. So the player's speed wouldn't reduce and if they ran at a wall and jumped whilst against it they would jump flush against it.
I've been racking my brain about how to do this and am getting nowhere.
Thanks in advance.
Use a real-world solution...make the player's mass very large in comparison to the debris particles.
Answer by Pyrian · Apr 16, 2014 at 10:59 PM
I agree with robertblu that making a large mass disparity would probably be the best answer. That being said, you can do what you want to do. Put the debris on a Layer that doesn't interact with the Player (so the player won't be affected by them), then in that Layer add a kinematic rigidbody that mirrors the player's size and movements (so the debris IS affected by the player).
Thank you very much - genius idea, never thought of that.
Answer by Bunny83 · Apr 16, 2014 at 11:13 PM
A common solution is to:
ignore collisions between the player layer and the debris layer.
add another kinematic rigidbody as child to your player and allow collisions with the debris layer.
Your answer
Follow this Question
Related Questions
Unity 2D gravity 1 Answer
2D walls affect my jump height 1 Answer
Rigidbody2d not falling once in the air 1 Answer
Rigidbody2D freezes 1 Answer
How to move rigidbody relative to a moving object? 0 Answers