From 9077e0cf226acf953fe62cca66d9c09a4de3f97d Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Sun, 31 Dec 2023 14:36:04 +0200 Subject: [PATCH] Fix crash while moving simulation disabled kinematic actors --- Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp b/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp index cbc381142..af6c6403b 100644 --- a/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp +++ b/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp @@ -2260,7 +2260,13 @@ void PhysicsBackend::SetRigidActorPose(void* actor, const Vector3& position, con if (kinematic) { auto actorPhysX = (PxRigidDynamic*)actor; - actorPhysX->setKinematicTarget(trans); + if (actorPhysX->getActorFlags() & PxActorFlag::eDISABLE_SIMULATION) + { + // Ensures the disabled kinematic actor ends up in the correct pose after enabling simulation + actorPhysX->setGlobalPose(trans, wakeUp); + } + else + actorPhysX->setKinematicTarget(trans); } else {