How do I make child collisions stop the parent object?

So I’m making an FPS where the player can get in a spaceship and fly between different planets.

Amusingly, the way the ship’s position would be preserved between scenes, I figured it would be easier to make the ship stay still while the rest of the universe moves around it. And it worked.

The problem is that now I can just fly straight through planets. Each planet is a child of one empty object that the ship controls.

At this point, I’m considering redoing the design, figuring that I can just make the level on each planet at the same coordinates as it’s planet object in the previous scene.

Yet still, I thought it a topic worth bringing up. Is there a way to make collision with the child objects stop the parent object from moving?

How about raycasting forward the amount of distance you are intending to move each frame, and if you hit the planet’s collider, then you will have a point in space where you hit it, a normal, etc. (all the usual data in a RaycastHit object you can get back from the Raycast() function) and you can do what you want to your velocity then.