public void SpawnPlayer(NetworkConnection conn) { NetworkGamePlayerLobby networkGamePlayerLobby = conn.identity.transform.GetComponent <NetworkGamePlayerLobby>(); if (networkGamePlayerLobby.IsOrange) { Transform spawnpoint = orangeSpawnPoints[orangeNextIndex]; if (spawnpoint == null) { Debug.LogError($"Missing spawn point for orange {orangeNextIndex}"); return; } GameObject playerInstance = Instantiate(playerPrefab, orangeSpawnPoints[orangeNextIndex].position, orangeSpawnPoints[orangeNextIndex].rotation); PlayerID playerID = playerInstance.GetComponent <PlayerID>(); playerID.isOrange = true; playerID.displayName = networkGamePlayerLobby.displayName; playerID.SetGamePlayer(RoundSystem.Room.GamePlayers.IndexOf(networkGamePlayerLobby)); playerInstance.GetComponent <MoneyHandler>().SetMoney(networkGamePlayerLobby.money, networkGamePlayerLobby); players.Add(playerInstance); NetworkServer.Spawn(playerInstance, conn); GameObject characterInstance = Instantiate(orangeCharacterPrefab, playerInstance.transform); characters.Add(characterInstance); NetworkServer.Spawn(characterInstance, conn); GiveWeapons(playerInstance, networkGamePlayerLobby.gameObject); GameObject.Find("OrangeDeadRoom").GetComponent <SpectatorScreenController>().AddPlayer(playerInstance); for (int i = 0; i < players.Count; i++) { RpcSetCharacterParent(characters[i], players[i]); } orangeNextIndex++; } else if (networkGamePlayerLobby.IsGreen) { Transform spawnpoint = greenSpawnPoints[greenNextIndex]; if (spawnpoint == null) { Debug.LogError($"Missing spawn point for green {greenNextIndex}"); return; } GameObject playerInstance = Instantiate(playerPrefab, greenSpawnPoints[greenNextIndex].position, greenSpawnPoints[greenNextIndex].rotation); PlayerID playerID = playerInstance.GetComponent <PlayerID>(); playerID.isGreen = true; playerID.displayName = networkGamePlayerLobby.displayName; playerID.SetGamePlayer(RoundSystem.Room.GamePlayers.IndexOf(networkGamePlayerLobby)); playerInstance.GetComponent <MoneyHandler>().SetMoney(networkGamePlayerLobby.money, networkGamePlayerLobby); players.Add(playerInstance); NetworkServer.Spawn(playerInstance, conn); GameObject characterInstance = Instantiate(greenCharacterPrefab, playerInstance.transform); characters.Add(characterInstance); NetworkServer.Spawn(characterInstance, conn); GiveWeapons(playerInstance, networkGamePlayerLobby.gameObject); GameObject.Find("GreenDeadRoom").GetComponent <SpectatorScreenController>().AddPlayer(playerInstance); for (int i = 0; i < players.Count; i++) { RpcSetCharacterParent(characters[i], players[i]); } greenNextIndex++; } }