Hello there,
I’m creating a multiplayer rts game which player pawn is just a camera. When I select play as client with 2 or with 1, additional pawns are spawning in my game.
Here is the log :
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog StartEnableInput: Couldnt get playercontroller from camera pawn (BP_NKPlayerCamera_C_0)!
Warning GameplayLog # ANKPlayerCamera::PossessedBy # Possessing player controller(BP_NKPlayerController_C_0) to playercamera(BP_NKPlayerCamera_C_0)
Warning GameplayLog NEW PLAYER JOINED BP_NKPlayerController_C_0
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog StartEnableInput: Couldnt get playercontroller from camera pawn (BP_NKPlayerCamera_C_1)!
Log GameplayLog # ANKInGameMode::SpawnPlayersBasedOnTeam # Joined player is : BP_NKPlayerCamera_C_1, With an order 0
Warning GameplayLog # ANKPlayerCamera::PossessedBy # Possessing player controller(BP_NKPlayerController_C_0) to playercamera(BP_NKPlayerCamera_C_1)
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog CAST TO PLAYER CONTROLLER SUCCESSFUL BP_NKPlayerController_C_0
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog CAST TO PLAYER CONTROLLER SUCCESSFUL BP_NKPlayerController_C_0
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog StartEnableInput: Couldnt get playercontroller from camera pawn (BP_NKPlayerCamera_C_2)!
Warning GameplayLog # ANKPlayerCamera::PossessedBy # Possessing player controller(BP_NKPlayerController_C_1) to playercamera(BP_NKPlayerCamera_C_2)
Warning GameplayLog NEW PLAYER JOINED BP_NKPlayerController_C_1
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog StartEnableInput: Couldnt get playercontroller from camera pawn (BP_NKPlayerCamera_C_3)!
Log GameplayLog # ANKInGameMode::SpawnPlayersBasedOnTeam # Joined player is : BP_NKPlayerCamera_C_3, With an order 1
Warning GameplayLog # ANKPlayerCamera::PossessedBy # Possessing player controller(BP_NKPlayerController_C_1) to playercamera(BP_NKPlayerCamera_C_3)
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog StartEnableInput: Couldnt get playercontroller from camera pawn (BP_NKPlayerCamera_C_2)!
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog StartEnableInput: Couldnt get playercontroller from camera pawn (BP_NKPlayerCamera_C_3)!
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog CAST TO PLAYER CONTROLLER SUCCESSFUL BP_NKPlayerController_C_0
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog StartEnableInput: Couldnt get playercontroller from camera pawn (BP_NKPlayerCamera_C_1)!
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog CAST TO PLAYER CONTROLLER SUCCESSFUL BP_NKPlayerController_C_0
Warning GameplayLog ENABLE INPUT AFTER START
Warning GameplayLog StartEnableInput: Couldnt get playercontroller from camera pawn (BP_NKPlayerCamera_C_3)!
From the logs that I can see
2 times my gamemode is working for the new player join.
But somehow game spawning 4 times my pawn
BP_NKPlayerCamera_C_0
BP_NKPlayerCamera_C_1
BP_NKPlayerCamera_C_2
BP_NKPlayerCamera_C_3
And 12 times “ENABLE INPUT AFTER START” log is being invoked by my playercamera.
Here is the code that I’m spawning my players in GameMode invoked by PostLogin
TArray<AActor*> blueTeamSpawnPoints;
UGameplayStatics::GetAllActorsOfClass(GetWorld(), APlayerStart::StaticClass(),blueTeamSpawnPoints);
FActorSpawnParameters actorSpawnParams;
actorSpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
ANKPlayerCamera* spawnedCamera = GetWorld()->SpawnActor<ANKPlayerCamera>(DefaultPawnClass, blueTeamSpawnPoints[PlayerJoinOrder]->GetActorLocation(), blueTeamSpawnPoints[PlayerJoinOrder]->GetActorRotation(),actorSpawnParams);
UE_LOG(GameplayLog, Log, TEXT("# %s # Joined player is : %s, With an order %d"), ANSI_TO_TCHAR(__FUNCTION__), *spawnedCamera->GetName(), PlayerJoinOrder);
auto* playerController = Cast<ANKPlayerController>(NewPlayer);
if (!playerController)
{
UE_LOG(GameplayLog, Error, TEXT("# %s # Couldnt assigned player controller %s"), *NewPlayer->GetName());
}
spawnedCamera->PossessedBy(playerController);
PlayerJoinOrder++;
I wonder how to solve this duplications, as my assumption, unreal itsef is automatically spawning players without taking request.
Is there any way to solve this