Refactored and added comments

This commit is contained in:
Manish 2019-05-21 15:19:52 +02:00
parent 9e5c2f5a2f
commit e2106e245d
1 changed files with 12 additions and 9 deletions

View File

@ -9,8 +9,8 @@
#include "Components/BoxComponent.h" #include "Components/BoxComponent.h"
#include "Engine/CollisionProfile.h" #include "Engine/CollisionProfile.h"
#include "PhysXVehicleManager.h"
#include "PhysXPublic.h" #include "PhysXPublic.h"
#include "PhysXVehicleManager.h"
#include "TireConfig.h" #include "TireConfig.h"
#include "VehicleWheel.h" #include "VehicleWheel.h"
@ -37,17 +37,19 @@ void ACarlaWheeledVehicle::BeginPlay()
float FrictionScale = 3.5f; float FrictionScale = 3.5f;
// Setup Tire Configs
UWheeledVehicleMovementComponent4W *Vehicle4W = Cast<UWheeledVehicleMovementComponent4W>( UWheeledVehicleMovementComponent4W *Vehicle4W = Cast<UWheeledVehicleMovementComponent4W>(
GetVehicleMovementComponent()); GetVehicleMovementComponent());
check(Vehicle4W != nullptr); check(Vehicle4W != nullptr);
for (int32 i = 0; i < Vehicle4W->Wheels.Num(); ++i) // Setup Tire Configs with default value. This is needed to avoid getting
{ // friction values of previously created TireConfigs for the same vehicle
Vehicle4W->Wheels[i]->TireConfig->SetFrictionScale(FrictionScale); // blueprint.
} TArray<float> OriginalFrictions;
OriginalFrictions.Init(FrictionScale, Vehicle4W->Wheels.Num());
SetWheelsFrictionScale(OriginalFrictions);
// Check if it overlaps with a Friction trigger // Check if it overlaps with a Friction trigger, if so, update the friction
// scale.
TArray<AActor *> OverlapActors; TArray<AActor *> OverlapActors;
GetOverlappingActors(OverlapActors, AFrictionTrigger::StaticClass()); GetOverlappingActors(OverlapActors, AFrictionTrigger::StaticClass());
for (const auto &Actor : OverlapActors) for (const auto &Actor : OverlapActors)
@ -59,7 +61,7 @@ void ACarlaWheeledVehicle::BeginPlay()
} }
} }
// Wheels Setup // Set the friction scale to Wheel CDO and update wheel setups
TArray<FWheelSetup> NewWheelSetups = Vehicle4W->WheelSetups; TArray<FWheelSetup> NewWheelSetups = Vehicle4W->WheelSetups;
for (const auto &WheelSetup : NewWheelSetups) for (const auto &WheelSetup : NewWheelSetups)
@ -309,7 +311,8 @@ void ACarlaWheeledVehicle::ApplyVehiclePhysicsControl(const FVehiclePhysicsContr
// Wheels Setup // Wheels Setup
const int PhysicsWheelsNum = PhysicsControl.Wheels.Num(); const int PhysicsWheelsNum = PhysicsControl.Wheels.Num();
if (PhysicsWheelsNum != 4) { if (PhysicsWheelsNum != 4)
{
UE_LOG(LogCarla, Error, TEXT("Number of WheelPhysicsControl is not 4.")); UE_LOG(LogCarla, Error, TEXT("Number of WheelPhysicsControl is not 4."));
return; return;
} }