Is the Rigidbody attached to the parent?
And how do you you move the player via code? Do you manipulate transform.position
directly or use the transform.Translate method? If so, I’d suggest to move the player via the Rigidbody with the AddForce method. Look it up in the API. There is an example. If you understand it, you will certainly be able to remove the current code and replace it with the AddForce method call.
The next thing you could do is to select all non-moving game objects with a Collider component and enable “Static” in their respective Inspector. Do not do that for game objects that are moving during runtime. By setting the non-moveable game objects to “static”, you tell the simulation that these are not supposed to be moved.
You could also add a Physic Material to the ground and/or the player. Increase the friction a bit.
And last but not least, you could slightly increase some values in the Physic Settings. This will could have a noticeable negative impact on the performance, though, so be careful and test your game.