public void NextTurn()
        {
            int i = Players.IndexOf(PlayerCurrentTurn);

            if (i != (Players.Count - 1))
            {
                i++;
            }
            else
            {
                i = 0;
            }

            PlayerCurrentTurn = Players[i];

            if (PlayerCurrentTurn.noTurn)
            {
                NextTurn();
                return;
            }

            var nextTurn = new PlayerTurn
            {
                PlayerID = GameManager.Instance.PlayerCurrentTurn.Client.ClientID
            };

            //Send which player's turn it is.
            for (int f = 0; f < ServerBehaviour.Instance.Clients.Count; f++)
            {
                var writer = ServerBehaviour.Instance.m_Driver.BeginSend(ServerBehaviour.Instance.m_Connections[f]);
                nextTurn.SerializeObject(ref writer);
                ServerBehaviour.Instance.m_Driver.EndSend(writer);
            }
        }
        private void Start()
        {
            //CurrentRoom.SetRoomDirections((Room.RoomDirections)UnityEngine.Random.Range((int)1, (int)15));

            //Setup players in current room.
            for (int i = 0; i < ClientBehaviour.Instance.Clients.Count; i++)
            {
                GameObject player = Instantiate(playerPrefab, RoomGameObject.spawnPositions[i].transform.position, RoomGameObject.spawnPositions[i].transform.rotation);
                player.name = ClientBehaviour.Instance.Clients[i].ClientName;
                player.GetComponent <Player>().Health = ClientBehaviour.Instance.Clients[i].StartHealth;
                player.GetComponent <Player>().Client = ClientBehaviour.Instance.Clients[i];

                Players.Add(player.GetComponent <Player>());
                player.SetActive(false);
            }

            if (ClientBehaviour.Instance.IsHost) //Send game info on start of game.
            {
                //Generate Grid if host.
                Grid = GetComponent <GridGeneration>();
                Grid.GenerateGrid();

                for (int i = 0; i < Players.Count; i++)
                {
                    Grid.RoomGrid[0, 0].PlayersInRoom.Add(Players[i]);
                    Players[i].CurrentRoom = Grid.RoomGrid[0, 0];
                }

                //Set player turn
                PlayerCurrentTurn = Players[0];

                #region RoomInfoMessage
                //Send Room Info
                var roomInfo = new RoomInfo()
                {
                    MoveDirections       = (byte)Grid.RoomGrid[0, 0].possibleDirections,
                    TreasureInRoom       = Grid.RoomGrid[0, 0].TreasureAmount,
                    ContainsMonster      = Grid.RoomGrid[0, 0].ContainsMonster,
                    ContainsExit         = Grid.RoomGrid[0, 0].ContainsExit,
                    NumberOfOtherPlayers = (byte)ServerBehaviour.Instance.Clients.Count
                };

                int[] playerIDs = new int[roomInfo.NumberOfOtherPlayers];
                for (int f = 0; f < roomInfo.NumberOfOtherPlayers; f++)
                {
                    playerIDs[f] = ServerBehaviour.Instance.Clients[f].ClientID;
                    //Debug.Log(playerIDs[f]);
                }
                #endregion

                #region NextPlayerMessage
                //Send which player's turn it is.
                var playerTurn = new PlayerTurn
                {
                    PlayerID = PlayerCurrentTurn.Client.ClientID
                };

                #endregion

                #region SendMessages
                //Send Messages.
                for (int i = 0; i < ServerBehaviour.Instance.Clients.Count; i++)
                {
                    var writer = ServerBehaviour.Instance.m_Driver.BeginSend(ServerBehaviour.Instance.m_Connections[i]);
                    roomInfo.SerializeObject(ref writer, playerIDs);
                    ServerBehaviour.Instance.m_Driver.EndSend(writer);

                    var writer1 = ServerBehaviour.Instance.m_Driver.BeginSend(ServerBehaviour.Instance.m_Connections[i]);
                    playerTurn.SerializeObject(ref writer1);
                    ServerBehaviour.Instance.m_Driver.EndSend(writer1);
                }
                #endregion
            }
        }