diff options
author | Camille Mohr-Daurat <pouleyKetchoup@gmail.com> | 2021-08-27 10:56:42 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-27 10:56:42 -0700 |
commit | 87f575efddf503297e056f169cfd8a68dbe859c5 (patch) | |
tree | 29b513b75e5067e8f5972e9d3a585c6bc101daf1 /scene/3d/physics_body_3d.cpp | |
parent | 569d87878e1adf3160e74e963ceaf07ad58a58df (diff) | |
parent | 4da0cfe45948de767d3cbbd6986b45e32ba73405 (diff) |
Merge pull request #52135 from fabriceci/fix-transmission-velocity-on-wall-4
Remove velocity transmission on_wall when collider is CharacterBody.
Diffstat (limited to 'scene/3d/physics_body_3d.cpp')
-rw-r--r-- | scene/3d/physics_body_3d.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/scene/3d/physics_body_3d.cpp b/scene/3d/physics_body_3d.cpp index a8a755972f..06a4087b60 100644 --- a/scene/3d/physics_body_3d.cpp +++ b/scene/3d/physics_body_3d.cpp @@ -1229,8 +1229,11 @@ void CharacterBody3D::_set_collision_direction(const PhysicsServer3D::MotionResu on_ceiling = true; } else { on_wall = true; - on_floor_body = p_result.collider; - floor_velocity = p_result.collider_velocity; + // Don't apply wall velocity when the collider is a CharacterBody3D. + if (Object::cast_to<CharacterBody3D>(ObjectDB::get_instance(p_result.collider_id)) == nullptr) { + on_floor_body = p_result.collider; + floor_velocity = p_result.collider_velocity; + } } } } |