void UTankTrack::DriveTrack() { auto ForceApplied = GetForwardVector() * CurrentThrottle * TrackMaxDrivingForce; auto ForceLocation = GetComponentLocation(); auto TankRoot = Cast<UPrimitiveComponent>(GetOwner()->GetRootComponent()); TankRoot->AddForceAtLocation(ForceApplied, ForceLocation); }
void UTankTrack::SetThrottle(float Throttle) { auto Name = GetName(); UE_LOG(LogTemp, Warning, TEXT("%s throttle: %f"), *Name, Throttle); auto ForceApplied = Throttle * TrackMaxDrivingForce * GetForwardVector(); auto ForceLocation = GetComponentLocation(); auto TankRootComponent = Cast<UPrimitiveComponent>(GetOwner()->GetRootComponent()); TankRootComponent->AddForceAtLocation(ForceApplied, ForceLocation); }