TankMovementComponent.Cpp
auto TankForward = GetOwner()->GetActorForwardVector();
auto AIForwardIntention = MoveVelocity.GetSafeNormal();
auto ForwardThrow = FVector::DotProduct(TankForward, AIForwardIntention);
TankTrack.Cpp
auto SlippageSpeed = FVector::DotProduct(GetRightVector(), GetComponentVelocity());
Why did we use GetSafeNormal with MoveVeolcity in DotProduct at first code (TankMovementComponent) shown above and did not do that with GetComponentVelocity at (TankTrack) ?
What are the cases that should we use GetSafeNormal() ?