For some reason, this piece of c++ is causing the editor to crash and after digging through the logs, I found this error that I believe is causing the crash. There are 48 actors in the array FoundActors.
LogWindows: Error: Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:E:\UE4\UE_4.18\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 610]
LogWindows: Error: Array index out of bounds: 1331090944 from an array of size 48
The code I’m talking about is this:
void UCustomBP::GetClosestChosenActor(APawn* AiPawn, UClass* classToFind, AActor* &TargetActor, FVector &TargetVector) {
float lastDistanceToWall = 10000;
int WallIndex;
UWorld* World = AiPawn->GetWorld();
TArray<AActor*> FoundActors;
UGameplayStatics::GetAllActorsOfClass(World, classToFind, FoundActors);
if (FoundActors.Num() >= 2) {
for (int Actors = 0; Actors < FoundActors.Num(); ++Actors)
{
float DistanceToWall = AiPawn->GetDistanceTo(FoundActors[Actors]);
if (DistanceToWall < lastDistanceToWall) {
lastDistanceToWall = DistanceToWall;
WallIndex = Actors;
}
if (Actors + 1 == FoundActors.Num()) {
TargetActor = FoundActors[WallIndex];
TargetVector = FoundActors[WallIndex]->GetActorLocation();
}
}
}
else {
TargetActor = FoundActors[0];
TargetVector = FoundActors[0]->GetActorLocation();
}
}
Can someone please tell me what I am doing wrong.