// Server private IEnumerator SetUpGame() { Debug.Log("Set up Game"); yield return(new WaitForSeconds(1.0f)); // just in case // Shuffle Spawn positions for (int i = 0; i < this.spawnTransforms.Count; i++) { int ran = (int)Random.Range(0, spawnTransforms.Count); Transform temp = spawnTransforms[i]; spawnTransforms[i] = spawnTransforms[ran]; spawnTransforms[ran] = temp; } // Send msg to all clients for each player Debug.Log("Send initialize update to " + this.numPlayers.ToString() + " players"); for (int i = 0; i < this.numPlayers; i++) { InitializePlayerMessage msg = new InitializePlayerMessage(); msg.name = this.playerInfoList[i].name; msg.colour = this.playerInfoList[i].colour; msg.objectId = (int)this.playerInfoList[i].playerObjectId; msg.spawnPosition = this.spawnTransforms[i].position; NetworkServer.SendToAll(CustomMsgType.InitPlayer, msg); // Update server replication PlayerManager tempPlayer = NetworkHelper.GetObjectByNetIdValue <PlayerManager>((uint)msg.objectId, true); tempPlayer.Initialize(msg.name, msg.colour, msg.spawnPosition, this, this.gameCanvas); } // Update player game UI GameUISetupMessage sendMsg = new GameUISetupMessage(); List <string> tempNames = new List <string>(); List <Color> tempCol = new List <Color>(); for (int i = 0; i < this.maxConnections; i++) { tempNames.Add(this.playerInfoList[i].name); tempCol.Add(this.playerInfoList[i].colour); } sendMsg.isPlaying = this.isPlayerReadyList.ToArray(); sendMsg.playerHealth = this.playerHealthList.ToArray(); sendMsg.playerNames = tempNames.ToArray(); sendMsg.playerColours = tempCol.ToArray(); NetworkServer.SendToAll(CustomMsgType.GameUISetup, sendMsg); // Start game routines this.StartCoroutine(this.CheckDeathRoutine()); this.StartCoroutine(this.GameTimerRoutine()); this.StartCoroutine(this.ScoreRoutine()); this.StartCoroutine(this.GameCountdown()); this.StartCoroutine(this.PickupSpawnRoutine()); yield return(null); }
// Client private void OnPlayerInitialize(NetworkMessage _networkMessage) { // Read msg InitializePlayerMessage msg = _networkMessage.ReadMessage <InitializePlayerMessage>(); // Send msg to player object PlayerManager tempPlayer = NetworkHelper.GetObjectByNetIdValue <PlayerManager>((uint)msg.objectId, false); tempPlayer.Initialize(msg.name, msg.colour, msg.spawnPosition, this, this.gameCanvas); this.clientPlayerInfo.playerObjectId = (uint)msg.objectId; }