diff --git a/leenkx/Sources/leenkx/trait/physics/bullet/RigidBody.hx b/leenkx/Sources/leenkx/trait/physics/bullet/RigidBody.hx index 4d19b55..b50d20f 100644 --- a/leenkx/Sources/leenkx/trait/physics/bullet/RigidBody.hx +++ b/leenkx/Sources/leenkx/trait/physics/bullet/RigidBody.hx @@ -460,6 +460,9 @@ class RigidBody extends iron.Trait { transform.loc.set(tx, ty, tz, 1.0); transform.rot.set(tRot.x(), tRot.y(), tRot.z(), tRot.w()); + } else { + transform.loc.set(currentPos.x(), currentPos.y(), currentPos.z(), 1.0); + transform.rot.set(currentRot.x(), currentRot.y(), currentRot.z(), currentRot.w()); } if (object.parent != null) { diff --git a/leenkx/Sources/leenkx/trait/physics/jolt/RigidBody.hx b/leenkx/Sources/leenkx/trait/physics/jolt/RigidBody.hx index 909a282..bc0b378 100644 --- a/leenkx/Sources/leenkx/trait/physics/jolt/RigidBody.hx +++ b/leenkx/Sources/leenkx/trait/physics/jolt/RigidBody.hx @@ -495,8 +495,11 @@ class RigidBody extends Trait { } var active = physics.bodyInterface.IsActive(bodyId); - if (!active) + if (!active) { + // Activate body if sleeping + physics.bodyInterface.ActivateBody(bodyId); return; + } // Read position and rotation from Jolt into cached state var p = physics.bodyInterface.GetPosition(bodyId);