From 01ab0ba14dc90e73323f9ccfe069ae4bfad3f020 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 9 Apr 2026 17:35:00 +0200 Subject: [PATCH] Add `LongitudinalSlip`/`LateralSlip` to wheel state --- Source/Engine/Physics/Actors/WheeledVehicle.h | 10 ++++++++++ Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp | 2 ++ 2 files changed, 12 insertions(+) diff --git a/Source/Engine/Physics/Actors/WheeledVehicle.h b/Source/Engine/Physics/Actors/WheeledVehicle.h index 3e857ba23..74321573b 100644 --- a/Source/Engine/Physics/Actors/WheeledVehicle.h +++ b/Source/Engine/Physics/Actors/WheeledVehicle.h @@ -402,6 +402,16 @@ API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Wheeled Vehicle\"), ActorTo /// API_FIELD() float SuspensionOffset = 0.0f; + /// + /// The longitudinal slip of the tire (frontal). Can be used to determine whether the tire is slipping or gripping the surface. + /// + API_FIELD() float LongitudinalSlip = 0.0f; + + /// + /// The lateral slip of the tire (sideways). Can be used to determine whether the tire is slipping or gripping the surface. + /// + API_FIELD() float LateralSlip = 0.0f; + #if USE_EDITOR /// /// The start location of the suspension raycast start (Editor only for debugging). diff --git a/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp b/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp index 21059ad9e..18ed6effd 100644 --- a/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp +++ b/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp @@ -1175,6 +1175,8 @@ void ScenePhysX::UpdateVehicles(float dt) state.SteerAngle = RadiansToDegrees * perWheel.steerAngle; state.RotationAngle = -RadiansToDegrees * drive->mWheelsDynData.getWheelRotationAngle(j); state.SuspensionOffset = perWheel.suspJounce; + state.LongitudinalSlip = perWheel.longitudinalSlip; + state.LateralSlip = perWheel.lateralSlip; #if USE_EDITOR state.SuspensionTraceStart = P2C(perWheel.suspLineStart) + Origin; state.SuspensionTraceEnd = P2C(perWheel.suspLineStart + perWheel.suspLineDir * perWheel.suspLineLength) + Origin;