you can use raycast 3d to get the normal of a face, then based on the angle of the object you are colliding with, you can apply a force perpendicular to the object. Then, you can apply a force to slow the decent, and a force to move the player to a projected point based on where the raycast lands so the player "snaps" to the wall rather than just having a zone of floatyness next to the wall.