// this is called from message handler for Owner message
internal static void InternalAddPlayer(NetworkIdentity view, short playerControllerId)
{
if (LogFilter.logDebug)
{
Debug.LogWarning("ClientScene::InternalAddPlayer: playerControllerId : " + playerControllerId);
}
if (playerControllerId >= s_LocalPlayers.Count)
{
if (LogFilter.logWarn)
{
Debug.LogWarning("ClientScene::InternalAddPlayer: playerControllerId higher than expected: " + playerControllerId);
}
while (playerControllerId >= s_LocalPlayers.Count)
{
s_LocalPlayers.Add(new PlayerController());
}
}
// NOTE: It can be "normal" when changing scenes for the player to be destroyed and recreated.
// But, the player structures are not cleaned up, we'll just replace the old player
var newPlayer = new PlayerController {
gameObject = view.gameObject, playerControllerId = playerControllerId, unetView = view
};
s_LocalPlayers[playerControllerId] = newPlayer;
s_ReadyConnection.SetPlayerController(newPlayer);
}