Merge pull request #58926 from fabriceci/avoid-direction-correction-when-motion-is-down

This commit is contained in:
Rémi Verschelde 2022-03-09 15:12:08 +01:00 committed by GitHub
commit bc9dd15f0e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1425,7 +1425,7 @@ void CharacterBody3D::_move_and_slide_grounded(double p_delta, bool p_was_on_flo
const PhysicsServer3D::MotionCollision &collision = result.collisions[0];
Vector3 slide_motion = result.remainder.slide(collision.normal);
if (collision_state.floor && !collision_state.wall) {
if (collision_state.floor && !collision_state.wall && !motion_slide_up.is_equal_approx(Vector3())) {
// Slide using the intersection between the motion plane and the floor plane,
// in order to keep the direction intact.
real_t motion_length = slide_motion.length();