From 1e120d34011ad6dc1d15cfd7bea5446a251ccf62 Mon Sep 17 00:00:00 2001 From: xiejiangzhi Date: Sat, 18 Nov 2023 09:32:12 +0800 Subject: [PATCH] Auto wake up collider when calling API to apply force or change force. --- src/modules/physics/physics.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/modules/physics/physics.c b/src/modules/physics/physics.c index efc39206..150e1e2a 100644 --- a/src/modules/physics/physics.c +++ b/src/modules/physics/physics.c @@ -720,6 +720,7 @@ void lovrColliderGetLinearVelocity(Collider* collider, float* x, float* y, float } void lovrColliderSetLinearVelocity(Collider* collider, float x, float y, float z) { + dBodyEnable(collider->body); dBodySetLinearVel(collider->body, x, y, z); } @@ -731,6 +732,7 @@ void lovrColliderGetAngularVelocity(Collider* collider, float* x, float* y, floa } void lovrColliderSetAngularVelocity(Collider* collider, float x, float y, float z) { + dBodyEnable(collider->body); dBodySetAngularVel(collider->body, x, y, z); } @@ -755,14 +757,17 @@ void lovrColliderSetAngularDamping(Collider* collider, float damping, float thre } void lovrColliderApplyForce(Collider* collider, float x, float y, float z) { + dBodyEnable(collider->body); dBodyAddForce(collider->body, x, y, z); } void lovrColliderApplyForceAtPosition(Collider* collider, float x, float y, float z, float cx, float cy, float cz) { + dBodyEnable(collider->body); dBodyAddForceAtPos(collider->body, x, y, z, cx, cy, cz); } void lovrColliderApplyTorque(Collider* collider, float x, float y, float z) { + dBodyEnable(collider->body); dBodyAddTorque(collider->body, x, y, z); }