public void Handle(NetworkMessage message) { var registerPlayerMessage = message.ReadMessage <PlayerMessage>(); if (registerPlayerMessage == null) { return; } var item = new MyNetworkPlayer { Id = registerPlayerMessage.Id, Name = registerPlayerMessage.Name }; // add or update user var index = NetworkLobbyService.Players.IndexOf(item); if (index == -1) { NetworkLobbyService.Players.Add(item); } else { NetworkLobbyService.Players[index] = item; } foreach (var networkPlayer in NetworkLobbyService.Players) { SendLobbyPlayerSignal.Dispatch(networkPlayer); } }
/// <summary> /// Handle /// </summary> /// <param name="msg"></param> public void Handle(NetworkMessage msg) { var lobbyPlayerMessage = msg.ReadMessage <LobbyPlayerMessage>(); if (lobbyPlayerMessage == null) { return; } var item = new MyNetworkPlayer { Id = lobbyPlayerMessage.Id, Name = lobbyPlayerMessage.Name }; var index = NetworkPlayerService.OnlinePlayers.IndexOf(item); if (index == -1) { NetworkPlayerService.OnlinePlayers.Add(item); } else { NetworkPlayerService.OnlinePlayers[index] = item; } ShowLobbyPlayersSignal.Dispatch(); }
public override void OnServerAddPlayer(NetworkConnection conn) { base.OnServerAddPlayer(conn); MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>(); player.SetDisplayName($"Player {numPlayers}"); player.SetDisplayColour(Random.ColorHSV()); }
public override void OnServerAddPlayer(NetworkConnection conn) { base.OnServerAddPlayer(conn); MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>(); player.SetName($"Player {numPlayers}"); player.SetColor(new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f))); }
public override void OnServerAddPlayer(NetworkConnection conn) { base.OnServerAddPlayer(conn); MyNetworkPlayer myNetworkPlayer = conn.identity.GetComponent <MyNetworkPlayer>(); myNetworkPlayer.SetDisplayName($"Player {numPlayers}"); SetPlayerColor(myNetworkPlayer); }
public override void OnServerAddPlayer(NetworkConnection conn) { base.OnServerAddPlayer(conn); // Grab the player component and set its name to Player 1, 2, 3 and its color to random MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>(); player.SetDisplayName($"Player {numPlayers}"); player.SetDisplayColor(new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f))); }
public override void OnServerAddPlayer(NetworkConnection conn) { base.OnServerAddPlayer(conn); MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>(); player.SetDisplayName($"Player {numPlayers}"); player.SetDisplayColor(new Color(Random.value, Random.value, Random.value)); Debug.Log($"{player.GetDisplayName()} has connected!"); }
//[SerializeField] public List<Mesh> UsedShapes = new List<Mesh>(); //[SerializeField] public Mesh PCShape; //[SerializeField] private List<GameObject> ShapeList = new List<GameObject>(); public override void OnServerAddPlayer(NetworkConnection conn) { base.OnServerAddPlayer(conn); MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>(); player.SetPCName($"Player {numPlayers}"); player.SetPCColor(Random.ColorHSV()); //player.SetPCShape(ShapeData(conn)); player.SetMeshIndex(GetIndex()); Debug.Log($"{player.PCName} Connected to server | {numPlayers} Current Player(s)"); }
public override void OnServerAddPlayer(NetworkConnection conn) { base.OnServerAddPlayer(conn); MyNetworkPlayer player = conn.identity.GetComponent <MyNetworkPlayer>(); player.SetDisplayName($"Player {numPlayers}"); Color randomColor = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f)); player.SetDisplayColor(randomColor); Debug.Log("A player was added. " + $"Number of players: {numPlayers}"); }
// Use this for initialization public void InitStart(MyNetworkPlayer _nPlayer) { if (nPlayer == null) { nPlayer = _nPlayer; button1.onClick.RemoveAllListeners(); button1.onClick.AddListener(OnClickButton1); button2.onClick.RemoveAllListeners(); button2.onClick.AddListener(OnClickButton2); button3.onClick.RemoveAllListeners(); button3.onClick.AddListener(OnClickButton3); } }
public void InitPlayer(MyNetworkPlayer lobbyPlayer) { _networkLobbyPlayer = lobbyPlayer; _title.text = lobbyPlayer.Name; _status.SetStatusOnline(); }
IEnumerator ReorderSpawns() { while (true) { int halfwayPoint = occupierArray.Length / 2; int lowerBounds, upperBounds; // Modify player positions as necessary do not update players at this point. for (int i = 0; i < players.Count; ++i) { int playerIndex = Array.FindIndex(occupierArray, x => x.player == players[i].player); if (players[i].team == Constants.TEAM_NEUTRAL) { if (playerIndex != -1) { occupierArray[playerIndex] = null; } } else { if (playerIndex != -1) { // lowerBounds and upperBounds define the area which a given team is placed // within the occupierArray, since it is shared by both teams. lowerBounds = halfwayPoint * players[i].team; upperBounds = lowerBounds + halfwayPoint; if (!(playerIndex >= lowerBounds && playerIndex < upperBounds)) { occupierArray[playerIndex] = null; for (int j = lowerBounds; j < upperBounds; ++j) { if (occupierArray[j] == null) { MyNetworkPlayer temp = new MyNetworkPlayer(); temp.player = players[i].player; occupierArray[j] = temp; if (players[i].player == Network.player) { SetSpawnPoint(spawnPoints[j]); } else { networkView.RPC("SetSpawnPoint", players[i].player, spawnPoints[j]); } break; } } } // TODO: Implement logic to ensure that the player is on the right team and move them if not. } } } yield return new WaitForSeconds(0.5f); // Iterate through each half of the list and push players as far up the array // as they can go. If a move does occur, inform the player so they can shift. lowerBounds = 0; upperBounds = halfwayPoint; for (int i = 0; i < upperBounds; ++i) { if(occupierArray[i] == null) { for (int j = i; j < upperBounds; ++j) { if (occupierArray[j] != null) { occupierArray[i] = occupierArray[j]; occupierArray[j] = null; if (players[i].player == Network.player) { SetSpawnPoint(spawnPoints[i]); } else { networkView.RPC("SetSpawnPoint", occupierArray[i].player, spawnPoints[i]); } } } } } lowerBounds = upperBounds; upperBounds += halfwayPoint; for (int i = 0; i < upperBounds; ++i) { if(occupierArray[i] == null) { for (int j = i; j < upperBounds; ++j) { if (occupierArray[j] != null) { occupierArray[i] = occupierArray[j]; occupierArray[j] = null; if (players[i].player == Network.player) { SetSpawnPoint(spawnPoints[i]); } else { networkView.RPC("SetSpawnPoint", occupierArray[i].player, spawnPoints[i]); } } } } } // Wait yield return new WaitForSeconds(0.5f); } yield return null; }
// Use this for initialization void Start() { if (Network.isServer) { PlayerManager manager = GameObject.FindObjectOfType(typeof(PlayerManager)) as PlayerManager; players = manager.activePlayers; occupierArray = new MyNetworkPlayer[spawnPoints.Length]; // Convenience variables for iteration int teamOneIndex = 0; int teamTwoIndex = occupierArray.Length / 2; for (int i = 0; i < players.Count; ++i) { MyNetworkPlayer temp = new MyNetworkPlayer(); temp.player = players[i].player; if (players[i].team == Constants.TEAM_ONE) { occupierArray[teamOneIndex] = temp; ++teamOneIndex; } else { occupierArray[teamTwoIndex] = temp; ++teamTwoIndex; } } StartCoroutine("ReorderSpawns"); } }
private void SetPlayerColor(MyNetworkPlayer myNetworkPlayer) { Color randomColor = UnityEngine.Random.ColorHSV(); myNetworkPlayer.SetColor(randomColor); }
public void Login(MyNetworkPlayer player) { allPlayer.Add(player); player.RpcSetPlayer(allPlayer.Count); }