bool UGameplayDebuggingComponent::ServerCollectNavmeshData_Validate(FVector_NetQuantize10 TargetLocation) { bool bIsValid = false; #if WITH_RECAST UNavigationSystem* NavSys = UNavigationSystem::GetCurrent(GetWorld()); bIsValid = NavSys && NavSys->GetMainNavData(FNavigationSystem::DontCreate); #endif return bIsValid; }
ARecastNavMesh* UGameplayDebuggingComponent::GetNavData() { UNavigationSystem* NavSys = UNavigationSystem::GetCurrent(GetWorld()); if (NavSys == NULL) { return NULL; } // Try to get the correct nav-mesh relative to the selected actor. APawn* TargetPawn = Cast<APawn>(TargetActor); if (TargetPawn != NULL) { const FNavAgentProperties* NavAgentProperties = TargetPawn->GetNavAgentProperties(); if (NavAgentProperties != NULL) { return Cast<ARecastNavMesh>(NavSys->GetNavDataForProps(*NavAgentProperties)); } } // If it wasn't found, just get the main nav-mesh data. return Cast<ARecastNavMesh>(NavSys->GetMainNavData(FNavigationSystem::DontCreate)); }