Sorry forgot to mention. The Trace function is just calling the LineTracingByChannel with some extra debug lines and points.
{
FVector End = Start + (Direction * Length);
FCollisionQueryParams CollisionParameters;
CollisionParameters.AddIgnoredActor(this);
bool bIsHit = GetWorld()->LineTraceSingleByChannel(HitResult, Start, End, ECC_WorldDynamic, CollisionParameters);
DrawDebugLine(GetWorld(), Start, End, FColor::Green);
if (bIsHit)
{
DrawDebugPoint(GetWorld(), HitResult.ImpactPoint, 5.f, FColor::Orange);
}
return bIsHit;
}