Well, your code works but my implementation doesn’t.
// Called every frame
void AFlagObjective::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
TArray<AActor*> PlayersIn;
GetOverlappingActors(PlayersIn, TSubclassOf<ASoldier>());
FString nom = "";
if (PlayersIn.Num()) //On vérifie que l'array n'est pas vide (NULL) car le jeu crasherait. if(PlayersIn.Num() >= 1) fonctionne aussi.
{
nom = PlayersIn[0]->GetName();
//EnterEffect();
ASoldier* SoldierRef = Cast<ASoldier>(PlayersIn[0]);
if (SoldierRef)
{
int32 team = SoldierRef->GetTeam();
GEngine->AddOnScreenDebugMessage(-1, 0.0f, FColor::Red, "Team : " + team);
UE_LOG(LogTemp, Warning, TEXT("Equipe : "), team);
}
//int team = *PlayersIn[0]->GetTeam();
}
else
{
nom = "";
}
GEngine->AddOnScreenDebugMessage(-1, 0.0f, FColor::Purple, "Nom : " + nom);
UE_LOG(LogTemp, Warning, TEXT("Nom du character qui capture : "), *nom);
}
I wanted to print on screen and in the output console the team int to check if it works - it doesn’t.
