Hi there! I’ve just migrated from UE5.2 to UE5.3 and suddenly my FindPathSync returns always false (but NavMesh is Ok and character moves using MoveTo). To solve it I had to specify PathQuery.QueryFilter additionally to my previously specified parameters (seems that since EU5.3 it’s turned to null or whatever) Here is the code:
// Use the Navigation System to find the path
UNavigationSystemV1* NavSys = FNavigationSystem::GetCurrent(GetWorld());
AActor* OwnerChar = this; // Assuming this is a valid actor like a Pawn
if (!OwnerChar)
{
UE_LOG(LogTemp, Error, TEXT(“Owner is null!”));
return;
}// Use the default query filter class
TSubclassOf QueryFilterClass = UNavigationQueryFilter::StaticClass();
FSharedConstNavQueryFilter QueryFilter = UNavigationQueryFilter::GetQueryFilter(*NavSys->GetDefaultNavDataInstance(), OwnerChar, QueryFilterClass);// Now use QueryFilter in your pathfinding query
FPathFindingQuery PathQuery;
PathQuery.StartLocation = StartLocation;
PathQuery.EndLocation = PathDestination;
PathQuery.NavData = NavSys->GetDefaultNavDataInstance();
PathQuery.Owner = OwnerChar;
PathQuery.QueryFilter = QueryFilter;FPathFindingResult PathResult = NavSys->FindPathSync(PathQuery);
if (PathResult.IsSuccessful())
{
UE_LOG(LogTemp, Log, TEXT(“Path successfully found!”));
}
else
{
UE_LOG(LogTemp, Warning, TEXT(“Pathfinding failed!”));
}