void OnData(DataStreamReader stream) { NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp); stream.ReadBytes(bytes); string recMsg = Encoding.ASCII.GetString(bytes.ToArray()); NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg); switch (header.cmd) { case Commands.HANDSHAKE: HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg); Debug.Log("Handshake message received!"); break; case Commands.PLAYER_UPDATE: PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg); Debug.Log("Player update message received!"); break; case Commands.SERVER_UPDATE: ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg); Debug.Log("Server update message received!"); break; case Commands.PLAYER_INTO: PlayerIntoMsg pMsg = JsonUtility.FromJson <PlayerIntoMsg>(recMsg); Debug.Log("Player into message received!"); if (ID != pMsg.UnityID) { Instantiate(playerCube, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity); } break; case Commands.PLAYER_CUBE: PlayerCubeMsg pcMsg = JsonUtility.FromJson <PlayerCubeMsg>(recMsg); Debug.Log("Player movement update message received!"); foreach (GameObject p in GameObject.FindGameObjectsWithTag("Player")) { if (p != CubeObj && pcMsg.UnityID != ID) { p.transform.position = pcMsg.Point; } } break; default: Debug.Log("Unrecognized message received!"); break; } }
void OnData(DataStreamReader stream, int i) { NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp); stream.ReadBytes(bytes); string recMsg = Encoding.ASCII.GetString(bytes.ToArray()); NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg); switch (header.cmd) { case Commands.HANDSHAKE: HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg); Debug.Log("Handshake message received!"); break; case Commands.PLAYER_UPDATE: PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg); Debug.Log("Player update message received!"); break; case Commands.SERVER_UPDATE: ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg); Debug.Log("Server update message received!"); break; case Commands.PLAYER_INTO: PlayerIntoMsg pMsg = JsonUtility.FromJson <PlayerIntoMsg>(recMsg); Debug.Log("Player into message received!"); playerMsg.Add(pMsg); foreach (NetworkConnection P in m_Connections) { SendToClient(JsonUtility.ToJson(pMsg), P); } break; case Commands.PLAYER_CUBE: PlayerCubeMsg pcMsg = JsonUtility.FromJson <PlayerCubeMsg>(recMsg); Debug.Log("Player Cube message received!"); foreach (NetworkConnection P in m_Connections) { SendToClient(JsonUtility.ToJson(pcMsg), P); Debug.Log("Server cube"); } break; default: Debug.Log("SERVER ERROR: Unrecognized message received!"); break; } }
IEnumerator SendPos() { while (true) { if (CubeObj) { yield return(new WaitForSeconds(0.1f)); PlayerCubeMsg m = new PlayerCubeMsg(); m.Point = CubeObj.transform.position; m.UnityID = ID; SendToServer(JsonUtility.ToJson(m)); Debug.Log("SPtext"); } } }