Creating a solid, immoveable object ?

Hello friends, I’m new to Unity. I’m currently building a 2D asteroid shooter as part of a tutorial lab.

So far all is well, and I’m trying to build a solid, non-moveable brick object to protect the player from oncoming asteroids.

So far my block object has a Cube collider, and my player object has a Rigidbody. The player can’t completely move through the block, but can somewhat tweak its body a little bit into the block object. It would be nice if it couldn’t intersect the block at all.

However, my bigger problem is that if the player object tries driving up through the block, a gravity-like force is applied to it and it keeps getting dragged down. So:

1) How can I reduce the “feedback” physics that is causing my player object to fall back down after trying to push through the solid block? (gravity is not on)
To clarify the affect of the force: if I drive the ship upwards trying to move through the block, I will be pulled back down at rest. If I try driving it downwards, I’ll be pulled up. Same thing for trying to move left and right.

2) How can I make it so the player object can’t even partially go through the solid block?


The player should be stopped by the collider. Have you made sure it is the right size? If you’re sure it is, then you could use add a rigidbody to the block, and add freeze position and rotation, (not sure how well that works though), or you could make it stationary through scripting (set it’s position to whatever in a function update.)Hope that helped slightly.