summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2020-01-05 18:18:55 +0100
committerGitHub <noreply@github.com>2020-01-05 18:18:55 +0100
commit61dd7748cafafca08b8f87183ddf42de06b58911 (patch)
tree91fb2196d0c8072965ec2e2dd8c7b882feb86caa
parent82622d0e4117ad0d4a9e90967d139f178d767b10 (diff)
parentfc1f0d76e713ae49d253dd3934ea79599a70b94a (diff)
Merge pull request #34839 from madmiraal/fix-34807
Don't update the floor_velocity with the current linear_velocity.
-rw-r--r--scene/3d/physics_body.cpp11
1 files changed, 1 insertions, 10 deletions
diff --git a/scene/3d/physics_body.cpp b/scene/3d/physics_body.cpp
index 44dc3d0c26..c2860c25d8 100644
--- a/scene/3d/physics_body.cpp
+++ b/scene/3d/physics_body.cpp
@@ -1151,17 +1151,8 @@ Vector3 KinematicBody::move_and_slide(const Vector3 &p_linear_velocity, const Ve
}
}
- Vector3 current_floor_velocity = floor_velocity;
- if (on_floor && on_floor_body.is_valid()) {
- //this approach makes sure there is less delay between the actual body velocity and the one we saved
- PhysicsDirectBodyState *bs = PhysicsServer::get_singleton()->body_get_direct_state(on_floor_body);
- if (bs) {
- current_floor_velocity = bs->get_linear_velocity();
- }
- }
-
// Hack in order to work with calling from _process as well as from _physics_process; calling from thread is risky
- Vector3 motion = (current_floor_velocity + body_velocity) * (Engine::get_singleton()->is_in_physics_frame() ? get_physics_process_delta_time() : get_process_delta_time());
+ Vector3 motion = (floor_velocity + body_velocity) * (Engine::get_singleton()->is_in_physics_frame() ? get_physics_process_delta_time() : get_process_delta_time());
on_floor = false;
on_floor_body = RID();