What is the most efficient way to find the Closest pawn

What is the most efficient way to find the closest pawn (level has multiple pawns/Actors) ? :slight_smile:

You can use PawnIterator , it’s faster that ActorIterator or ObjectIterator.

Here is an example :

float NearestDistance = BIG_NUMBER;
	APawn* NearestPawn = nullptr;

	for (FConstPawnIterator Iterator = GetWorld()->GetPawnIterator(); Iterator; ++Iterator)
		APawn* OtherPawn = *Iterator;

		if (!IsValid(OtherPawn)) continue;

		const float TempDistance = FVector::Dist(GetActorLocation(), OtherPawn->GetActorLocation());
		if (NearestDistance > TempDistance)
			NearestDistance = TempDistance;
			NearestPawn = OtherPawn;

		DrawDebugSphere(GetWorld(), NearestPawn->GetActorLocation(), 50.0f, 16, FColor::Red);

This is so cool, I just gotta make a small tweak based on the current pawn’s direction but this will do the magic. :slight_smile:
Thanks Mhouse1247