Exemplo n.º 1
0
 private void Update()
 {
     if (newPlayers.Count > 0)
     {
         for (int i = 0; i < newPlayers.Count; i++)
         {
             NetworkMessage.Player newPlayer = newPlayers.Dequeue();
             SpawnPlayers(newPlayer);
         }
     }
     if (disconnectedPlayers.Count > 0)
     {
         for (int i = 0; i < disconnectedPlayers.Count; i++)
         {
             string diconnectedPlayerID = disconnectedPlayers.Dequeue();
             DestroyPlayers(diconnectedPlayerID);
         }
     }
     UpdatePlayers();
 }
Exemplo n.º 2
0
    void UpdatePlayers()
    {
        for (int i = 0; i < connectedPlayers.Count; i++)
        {
            if (latestUpdates.players.Length <= 0)
            {
                return;
            }

            if (i >= latestUpdates.players.Length)
            {
                return;
            }
            NetworkMessage.Player p = latestUpdates.players[i];
            if (!connectedPlayers.ContainsKey(p.id))
            {
                continue;
            }

            GameObject player = connectedPlayers[p.id];
            player.transform.position = p.position;
            player.transform.rotation = p.rotation;
        }
    }
Exemplo n.º 3
0
    void SpawnPlayers(NetworkMessage.Player player)
    {
        if (connectedPlayers.ContainsKey(player.id))
        {
            Debug.Log("Already exists");
            return;
        }

        //Spawn actual game object
        GameObject newPlayerGameObject = Instantiate(playerPrefab);

        //Every players will have different color from the server
        Color newColor = new Color(player.color.R, player.color.G, player.color.B);

        newPlayerGameObject.GetComponent <Renderer>().material.SetColor("_Color", newColor);

        //Add network id
        NetworkCharacter character = newPlayerGameObject.GetComponent <NetworkCharacter>();

        character.SetNetMan(this);
        character.SetNetworkID(player.id);
        character.SetControllable(player.id == ownID);
        connectedPlayers.Add(player.id, newPlayerGameObject);
    }