Multiple Players In Scene

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]);
  1. I create a new player in the scene.
  2. Create the ActorIterator
  3. Find all Pawns in the scene.
  4. The for loop is just so I can see that I have more than one player.
  5. Possess the other player character.