Skip to content

Commit

Permalink
Update body transforms on joint2D setup
Browse files Browse the repository at this point in the history
Body transforms from physics are used to setup the joint and they are
only updated before the physics step by default.

Without forcing the transform update, joints could use a previous
position if the body's position was set after it was added to the scene.

3D physics is not affected by this issue.
  • Loading branch information
pouleyKetchoupp committed Dec 24, 2020
1 parent 0923494 commit 11bee25
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions scene/2d/joints_2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,14 @@ void Joint2D::_update_joint(bool p_only_free) {
warning = String();
update_configuration_warning();

if (body_a) {
body_a->force_update_transform();
}

if (body_b) {
body_b->force_update_transform();
}

joint = _configure_joint(body_a, body_b);

ERR_FAIL_COND_MSG(!joint.is_valid(), "Failed to configure the joint.");
Expand Down

0 comments on commit 11bee25

Please sign in to comment.