From 07dfbfd9ca84ea857ae6bcc6d5d96778e290a8c7 Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Fri, 17 May 2024 17:55:46 +0200 Subject: [PATCH 1/3] Take entity bevy transform scale into account on writeback --- src/plugin/systems/rigid_body.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/plugin/systems/rigid_body.rs b/src/plugin/systems/rigid_body.rs index 5405a34b..478ccc10 100644 --- a/src/plugin/systems/rigid_body.rs +++ b/src/plugin/systems/rigid_body.rs @@ -311,6 +311,11 @@ pub fn writeback_rigid_bodies( } if let Some(mut transform) = transform { + // NOTE: Rapier's `RigidBody` doesn't know its own scale as it is encoded + // directly within its collider, so we have to retrieve it from + // the scale of its bevy transform. + interpolated_pos = interpolated_pos.with_scale(transform.scale); + // NOTE: we query the parent’s global transform here, which is a bit // unfortunate (performance-wise). An alternative would be to // deduce the parent’s global transform from the current entity’s From a09bc054f976bc218c8f5ad01fc02f4c6a3bea8e Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Mon, 20 May 2024 09:34:17 +0200 Subject: [PATCH 2/3] update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74d7dd12..8ac8a02e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +### Fix + +- Fix rigidbodies to never go to sleep when a scale was applied to their `Transform`. + ## v0.26.0 (05 May 2024) **This is an update to Rapier 0.19 which includes several stability improvements From 7f1d8740a7490fa8c8368167451245a91dada568 Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Mon, 20 May 2024 11:23:06 +0200 Subject: [PATCH 3/3] minor text tweak in CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ac8a02e..f6834e7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Fix -- Fix rigidbodies to never go to sleep when a scale was applied to their `Transform`. +- Fix rigidbodies never going to sleep when a scale was applied to their `Transform`. ## v0.26.0 (05 May 2024)