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); }
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); } }
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; }
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); }
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); } } }
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 }
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; }
static public bool IsSameID(NetworkObjects.NetworkPlayer p1, NetworkObjects.NetworkPlayer p2) { if (p1.id == p2.id) { return(true); } else { return(false); } }
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; } } }
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"); } }
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); } }
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); } }
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); }
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); }
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); }
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}"); } }