Hey all,
I’m looking for a bit of information on handling multiple players in a game.
For us we need to have more than one player on the screen (I can spawn one in my PlayerController using CreatePlayer()).
Is there a way to switch control over to this other player?
Also is there a way for the player to “see” the player 2 so that I can call functionality on it? Maybe creating the second player a different way and assigning it to a variable?
Thanks,
-Stackray.
Found my solution.
I’m using a TActorIterator to find all the pawns in the scene and adding them to an array, then using the PlayerController Possess function to take control of the other player
Here is a sample of my code:
UPlayer* playerTwo = GetWorld()->GetGameViewport()->CreatePlayer(1, something, true);
TActorIterator<APawn> Itr = TActorIterator<APawn>(GetWorld());
while (Itr)
{
playerArray.Add(*Itr);
++Itr;
}
for (int i = 0; i <= playerArray.Num() - 1; ++i)
{
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Blue, playerArray[i]->GetName());
}
Possess(playerArray[1]);
- I create a new player in the scene.
- Create the ActorIterator
- Find all Pawns in the scene.
- The for loop is just so I can see that I have more than one player.
- Possess the other player character.