From 4de9e9d918368d34bf112244bacd719862754d30 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Wed, 30 Oct 2024 00:01:54 +0100 Subject: [PATCH] Add gravity to `CharacterController::AddMovement` for proper movement when using Root Motion --- Source/Engine/Physics/Colliders/CharacterController.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Engine/Physics/Colliders/CharacterController.cpp b/Source/Engine/Physics/Colliders/CharacterController.cpp index 4a4452fc2..d4627cc5f 100644 --- a/Source/Engine/Physics/Colliders/CharacterController.cpp +++ b/Source/Engine/Physics/Colliders/CharacterController.cpp @@ -261,7 +261,13 @@ void CharacterController::UpdateBounds() void CharacterController::AddMovement(const Vector3& translation, const Quaternion& rotation) { - Move(translation); + Vector3 displacement = translation; + + // Apply gravity + const float deltaTime = Time::GetCurrentSafe()->DeltaTime.GetTotalSeconds(); + displacement += GetPhysicsScene()->GetGravity() * deltaTime; + + Move(displacement); if (!rotation.IsIdentity()) {