void OnConnect(NetworkConnection c)
    {
        Debug.Log("Accepted a connection");

        // Send Own id
        OwnIDMsg idMsg = new OwnIDMsg();

        idMsg.ownedPlayer.id        = c.InternalId.ToString();
        idMsg.ownedPlayer.cubeColor = new Color(Random.Range(0, 1.0f), Random.Range(0, 1.0f), Random.Range(0, 1.0f));
        Debug.Log("Sending player id: " + idMsg.ownedPlayer.id);
        SendToClient(JsonUtility.ToJson(idMsg), c);

        NetworkObjects.NetworkPlayer newPlayer = new NetworkObjects.NetworkPlayer();
        newPlayer.id        = c.InternalId.ToString();
        newPlayer.cubeColor = idMsg.ownedPlayer.cubeColor;
        plMsg.players.Add(newPlayer);
        msgInterval.Add(0.0f);

        // Example to send a Connect message to the client
        for (int i = 0; i < m_Connections.Length; i++)
        {
            PlayerConnectMsg m = new PlayerConnectMsg();
            Debug.Log("Send Player Connect");
            m.newPlayer.id        = c.InternalId.ToString();
            m.newPlayer.cubeColor = idMsg.ownedPlayer.cubeColor;
            SendToClient(JsonUtility.ToJson(m), m_Connections[i]);
        }

        SendToClient(JsonUtility.ToJson(plMsg), c);
        m_Connections.Add(c);
    }
    private void SpawnPlayer(NetworkObjects.NetworkPlayer player)
    {
        foreach (Player p in playerList)
        {
            if (p.ID == player.id)
            {
                return;
            }
        }

        Player temp = Instantiate(playerCube, player.cubePos, Quaternion.Euler(player.cubeRot)).GetComponent <Player>();

        temp.ID = player.id;
        if (temp.networkClient.playerID == temp.ID)
        {
            temp.isSmaeID = true;
        }

        temp.transform.position    = player.cubePos;
        temp.transform.eulerAngles = player.cubeRot;

        temp.gameObject.GetComponent <Renderer>().material.color = player.cubeColor;

        playerList.Add(temp);
    }
Esempio n. 3
0
    void OnConnect(NetworkConnection c)
    {
        m_Connections.Add(c);
        Debug.Log("Accepted a connection");

        HandshakeMsg message = new HandshakeMsg();

        message.player.id = c.InternalId.ToString();
        SendToClient(JsonUtility.ToJson(message), c);

        NetworkObjects.NetworkPlayer nPlayer = new NetworkObjects.NetworkPlayer();

        nPlayer.id        = c.InternalId.ToString();
        nPlayer.cubeColor = UnityEngine.Random.ColorHSV(0f, 1f, 1f, 1f, 0f, 1f);
        nPlayer.cubPos    = new Vector3(UnityEngine.Random.Range(-5, 5), UnityEngine.Random.Range(-5, 5), UnityEngine.Random.Range(0, 0));

        for (int i = 0; i < m_Connections.Length; i++)
        {
            if (m_Connections[i] != c)
            {
                PlayerUpdateMsg othermessage = new PlayerUpdateMsg();
                othermessage.cmd    = Commands.PLAYER_JOINED;
                othermessage.player = nPlayer;
                SendToClient(JsonUtility.ToJson(othermessage), m_Connections[i]);
            }
        }
        PlayerList.Add(nPlayer);
        foreach (var player in PlayerList)
        {
            PlayerUpdateMsg otherothermessage = new PlayerUpdateMsg();
            otherothermessage.cmd    = Commands.PLAYER_JOINED;
            otherothermessage.player = player;
            SendToClient(JsonUtility.ToJson(otherothermessage), c);
        }
    }
Esempio n. 4
0
    void OnConnect(NetworkConnection c)
    {
        Debug.Log("Accepted a connection");
        HandshakeMsg m = new HandshakeMsg();

        m.player.id        = c.InternalId.ToString();
        m.player.cubeColor = new Color(Random.Range(0, 1f), Random.Range(0, 1f), Random.Range(0, 1f));
        SendToClient(JsonUtility.ToJson(m), c);

        ListUpdateMsg lm = new ListUpdateMsg();

        NetworkObjects.NetworkPlayer newPlayer = m.player;
        newPlayer.lastHB = 0f;
        playerList.Add(newPlayer); //
        lm.players = playerList;
        for (int i = 0; i < m_Connections.Length; ++i)
        {
            PlayerAddMsg am = new PlayerAddMsg();
            am.player = m.player;
            SendToClient(JsonUtility.ToJson(am), m_Connections[i]);
        }
        SendToClient(JsonUtility.ToJson(lm), c);
        m_Connections.Add(c);
        Debug.Log("Connect Init Finished");
    }
    void OnDisconnect(int i)
    {
        Debug.Log("Client disconnected from server");
        foreach (var player in connectedPlayers)
        {
            if (player.id == m_Connections[i].InternalId.ToString())
            {
                droppedPlayer = player;
            }
        }
        connectedPlayers.Remove(droppedPlayer);
        m_Connections[i] = default(NetworkConnection);

        //let all of the remaining clients know who dropped
        DroppedUpdateMsg d = new DroppedUpdateMsg();

        d.player = droppedPlayer;
        foreach (NetworkConnection connection in m_Connections)
        {
            if (connection.IsCreated)
            {
                SendToClient(JsonUtility.ToJson(d), connection);
            }
        }
        droppedPlayer = null;
    }
Esempio n. 6
0
    void AddCube(NetworkObjects.NetworkPlayer p)
    {
        Vector3    pos    = new Vector3(p.X, p.Y, p.Z);
        Color      newCol = new Color(p.R, p.G, p.B);
        GameObject p1     = Instantiate(remoteCube, pos, new Quaternion(0, 0, 0, 0));

        p1.GetComponent <CubeBase>().id = p.id;
        activeCubes.Add(p1);
    }
Esempio n. 7
0
    private void SpawnRemotePlayer(NetworkObjects.NetworkPlayer remotePlayer)
    {
        GameObject newObj;

        newObj = Instantiate(clientCubePrefab, remotePlayer.cubePosition, Quaternion.identity);
        newObj.transform.eulerAngles = remotePlayer.cubeOrientation;
        m_clientIDDict.Add(remotePlayer.clientID, newObj.transform); //Add to player dictionary
        Debug.Log("[Notice] Spawned remote player: (" + remotePlayer.clientID + ")");
    }
    void CreateNetworkObject(NetworkObjects.NetworkPlayer player)
    {
        GameObject newPlayer = Instantiate(playerPrefab);

        newPlayer.GetComponent <Renderer>().material.color = player.cubeColor;
        newPlayer.transform.position = player.cubPos;

        otherPlayers.Add(player.id, newPlayer);
    }
    void CreateCube(NetworkObjects.NetworkPlayer npClient)
    {
        NetworkCube nCube = new NetworkCube(npClient.id);

        nCube.cube = GameObject.Instantiate(cubePrefab, npClient.cubePos, Quaternion.identity);
        nCube.cube.GetComponent <CubeController>().id           = int.Parse(npClient.id);
        nCube.cube.GetComponent <MeshRenderer>().material.color = npClient.cubeColor;
        nCube.cube.GetComponent <CubeController>().netClient    = this;
        cubeList.Add(nCube);
    }
    void UpdateNetworkObject(NetworkObjects.NetworkPlayer player)
    {
        if (otherPlayers.ContainsKey(player.id))
        {
            otherPlayers[player.id].transform.position = player.cubPos;
        }

        //Vector3 diff = transform.TransformDirection(new Vector3(player.cubPos.x, player.cubPos.y, player.cubPos.z) - otherPlayers[player.id].transform.position);
        //otherPlayers[player.id].GetComponent<CharacterController>().Move(diff);
    }
 void KillClientPlayer(NetworkObjects.NetworkPlayer leavingPlayer)
 {
     foreach (NetworkObjects.NetworkPlayer player in playerList)
     {
         if (player.id == leavingPlayer.id)
         {
             Destroy(player.cube);
             playerList.Remove(player);
         }
     }
 }
Esempio n. 12
0
    private void DestroyPlayer(NetworkObjects.NetworkPlayer _player)
    {
        GameObject player = findPlayer(_player.id);

        if (player != null)
        {
            playerList.Remove(player);

            Destroy(player);
        }
    }
    void SpawnPlayer(NetworkObjects.NetworkPlayer newPlayer)
    {
        Vector3    pos  = new Vector3(newPlayer.x, newPlayer.y, newPlayer.z);
        Color      c    = new Color(newPlayer.r, newPlayer.g, newPlayer.b);
        string     s    = newPlayer.id;
        GameObject temp = GameObject.Instantiate(m_model, pos, Quaternion.identity, null);

        temp.GetComponent <PlayerBehaviour>().myID        = s;
        temp.GetComponent <MeshRenderer>().material.color = c;
        m_cubes.Add(temp); //Uses the NetworkObject part of NetworkPlayer
    }
Esempio n. 14
0
    static public void PassTransform(NetworkObjects.NetworkPlayer receiver, NetworkObjects.NetworkPlayer passer)
    {
        if (!IsSameID(receiver, passer))
        {
            return;
        }

        receiver.cubePos  = passer.cubePos;
        receiver.cubeRot  = passer.cubeRot;
        receiver.prevBeat = passer.prevBeat;
    }
Esempio n. 15
0
 static public bool IsSameID(NetworkObjects.NetworkPlayer p1, NetworkObjects.NetworkPlayer p2)
 {
     if (p1.id == p2.id)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Esempio n. 16
0
    private void CreatePlayer(NetworkObjects.NetworkPlayer netPlayer)
    {
        GameObject player = Instantiate(playerType);

        //Set ID and client controller
        player.GetComponent <PlayerController>().id      = netPlayer.id;
        player.GetComponent <PlayerController>().network = this;
        player.GetComponent <Renderer>().material.SetColor("_Color", netPlayer.cubeColor);
        player.transform.position = netPlayer.cubePos;
        players.Add(player);
        Debug.Log("Player Created: ID " + netPlayer.id);
    }
 private void UpdatePlayer(NetworkObjects.NetworkPlayer client)
 {
     //Find client in players list
     for (int i = 0; i < players.Count; i++)
     {
         if (players[i].id == client.id)
         {
             players[i] = client;
             Debug.Log("Player Updated Succesfully: " + client.id);
             break;
         }
     }
 }
Esempio n. 18
0
    private void UpdatePlayer(NetworkObjects.NetworkPlayer _player)
    {
        var playerInList = getPlayer(_player.id);

        if (playerInList != null)
        {
            playerInList.cubeColor = _player.cubeColor;

            //Baby Bears are being positioned as players. Help, they do not want to be moved.
            playerInList.cubPos = _player.cubPos;
            Debug.Log("Updating players");
        }
    }
Esempio n. 19
0
    private void UpdatePlayerInfo(NetworkObjects.NetworkPlayer player)
    {
        var playerOnList = getPlayerFromList(player.id);

        if (playerOnList != null)
        {
            playerOnList.cubeColor = player.cubeColor;
            playerOnList.cubPos    = player.cubPos;
        }
        else
        {
            Debug.LogError("Tired to grab unknown player info, ID: " + player.id);
        }
    }
Esempio n. 20
0
    private void DestroyPlayer(NetworkObjects.NetworkPlayer oldPlayer)
    {
        // Get the player cube in the game
        GameObject playerObject = findPlayerObject(oldPlayer.id);

        if (playerObject != null)
        {
            // Remove object from the list
            playerList.Remove(playerObject);

            // Destory the actor
            Destroy(playerObject);
        }
    }
Esempio n. 21
0
    void OnConnect(NetworkConnection c)
    {
        m_Connections.Add(c);
        Debug.Log("Accepted a connection");

        NetworkObjects.NetworkPlayer temp = new NetworkObjects.NetworkPlayer();
        //// Example to send a handshake message:
        HandshakeMsg m = new HandshakeMsg();

        m.player.id = c.InternalId.ToString();
        temp        = m.player;
        playerList.Add(temp);
        SendToClient(JsonUtility.ToJson(m), c);
    }
Esempio n. 22
0
    private void CreatePlayer(NetworkObjects.NetworkPlayer _player)
    {
        GameObject newPlayer = Instantiate(playerPrefab, _player.cubPos, Quaternion.identity);


        newPlayer.GetComponentInChildren <TMP_Text>().text     = _player.id;
        newPlayer.GetComponent <MeshRenderer>().material.color = new Color(_player.cubeColor.r, _player.cubeColor.g, _player.cubeColor.b);
        if (newPlayer.GetComponentInChildren <TMP_Text>().text == myID)
        {
            newPlayer.AddComponent <PlayerMovement>();
            Debug.Log("Created Player");
        }

        playerList.Add(newPlayer);
    }
    void OnConnect(NetworkConnection c)
    {
        m_Connections.Add(c);
        Debug.Log("Accepted a connection: Player " + c.InternalId.ToString());

        //// Example to send a handshake message:
        HandshakeMsg m = new HandshakeMsg();

        m.player.id = c.InternalId.ToString();
        SendToClient(JsonUtility.ToJson(m), c);

        NetworkObjects.NetworkPlayer newClient = new NetworkObjects.NetworkPlayer();
        newClient.id = c.InternalId.ToString();
        m_connectedClients.Add(c.InternalId.ToString(), newClient);
    }
    private void SpawnPlayer(NetworkObjects.NetworkPlayer player)
    {
        for (int i = 0; i < players.Count; i++)
        {
            if (players[i].netId == player.id)
            {
                return;
            }
        }

        NetworkPlayer temp = Instantiate(playerGO, player.position, player.rotation).GetComponent <NetworkPlayer>();

        temp.SetPlayer(player.id, player.position, player.rotation.eulerAngles, player.color);

        players.Add(temp);
    }
    void OnDisconnect(int i)
    {
        Debug.Log("Client disconnected from server");

        SendDroppedMessageToRemainingLobby(i);

        foreach (var player in connectedPlayers)
        {
            if (player.id == m_Connections[i].InternalId.ToString())
            {
                droppedPlayer = player;
            }
        }
        connectedPlayers.Remove(droppedPlayer);
        m_Connections[i] = default(NetworkConnection);
    }
    void Start()
    {
        m_Driver     = NetworkDriver.Create();
        m_Connection = default(NetworkConnection);
        var endpoint = NetworkEndPoint.Parse(serverIP, serverPort);

        m_Connection = m_Driver.Connect(endpoint);
        myCube       = new NetworkObjects.NetworkPlayer();

        //myCube.cubePosition = new Vector3(0, 9, 0);

        //myCube.playerCube.transform.position = myCube.cubePosition();



        //InvokeRepeating("Position", 0.5f, 0.5f);
    }
    void SendPosition()
    {
        PlayerUpdateMsg m = new PlayerUpdateMsg();

        foreach (NetworkObjects.NetworkPlayer p in plMsg.players)
        {
            NetworkObjects.NetworkPlayer temp = new NetworkObjects.NetworkPlayer();
            temp.id      = p.id;
            temp.cubePos = p.cubePos;
            temp.cubeRot = p.cubeRot;
            m.players.Add(temp);
        }
        foreach (NetworkConnection c in m_Connections)
        {
            SendToClient(JsonUtility.ToJson(m), c);
        }
    }
    //Adds network connection to our list of connections
    private void OnConnect(NetworkConnection c)
    {
        NetworkObjects.NetworkPlayer newClient;

        Debug.Log("[Notice] New client connected to server. (" + c.InternalId + ")");

        m_Connections.Add(c);
        newClient = new NetworkObjects.NetworkPlayer();

        newClient.clientID        = GetNewClientID(); //Assign new ID
        newClient.bUnassignedData = true;
        m_clientIDDict.Add(c.InternalId, newClient);

        //// Example to send a handshake message:
        // HandshakeMsg m = new HandshakeMsg();
        // m.player.id = c.InternalId.ToString();
        // SendToClient(JsonUtility.ToJson(m),c);
    }
Esempio n. 29
0
    private void CreatePlayer(NetworkObjects.NetworkPlayer newPlayer)
    {
        // Create the newPlayer
        GameObject newPlayerObject = Instantiate(playerPrefab, newPlayer.cubPos, Quaternion.identity);

        // Set their ID tag
        newPlayerObject.GetComponentInChildren <TMP_Text>().text     = newPlayer.id;
        newPlayerObject.GetComponent <MeshRenderer>().material.color = new Color(newPlayer.cubeColor.r, newPlayer.cubeColor.b, newPlayer.cubeColor.g);
        Debug.Log("playerList size: " + playerList.Count);
        //Check if the new player is us (the client)
        if (newPlayerObject.GetComponentInChildren <TMP_Text>().text == myID)
        {
            //Add in the movement component
            newPlayerObject.AddComponent <PlayerMovementBehaviour>();
        }
        // Add the new player to the list
        playerList.Add(newPlayerObject);
    }
Esempio n. 30
0
    void OnConnect(NetworkConnection c)
    {
        m_Connections.Add(c);
        Debug.Log($"Accepted a connection, new id: {c.InternalId}");

        // Example to send a handshake message:
        HandshakeMsg m = new HandshakeMsg();

        m.player.id = c.InternalId.ToString();
        SendToClient(JsonUtility.ToJson(m), c);

        // Create the player's object info here and send it to everyone
        NetworkObjects.NetworkPlayer newPlayer = new NetworkObjects.NetworkPlayer();

        newPlayer.id        = c.InternalId.ToString();
        newPlayer.cubeColor = UnityEngine.Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f);
        newPlayer.cubPos    = new Vector3(UnityEngine.Random.Range(-10, 10), UnityEngine.Random.Range(-10, 10), UnityEngine.Random.Range(0, 10));

        // Send the current players (via the connections list) the new player's info
        for (int i = 0; i < m_Connections.Length; i++)
        {
            if (m_Connections[i] != c)
            {
                PlayerUpdateMsg m2 = new PlayerUpdateMsg();
                m2.cmd    = Commands.PLAYER_JOINED;
                m2.player = newPlayer;
                SendToClient(JsonUtility.ToJson(m2), m_Connections[i]);
            }
        }

        // Then add the new player to the list
        m_PlayerList.Add(newPlayer);
        // Finally send the new player all of the players to spawn (including itself)
        foreach (var player in m_PlayerList)
        {
            PlayerUpdateMsg m3 = new PlayerUpdateMsg();
            m3.cmd    = Commands.PLAYER_JOINED;
            m3.player = player;
            SendToClient(JsonUtility.ToJson(m3), c);
            Debug.Log($"Send player join message to client id: { c.InternalId} with the command {m3.cmd}");
        }
    }