//send data to server private List <String> ReadWriteServer() { List <String> data = new List <String>(); NetworkStream nwStream = clientInstance.GetStream(); StreamWriter writer = new StreamWriter(nwStream); StreamReader reader = new StreamReader(writer.BaseStream); //write player data if (!sentBaseData) { String command = "n"; writer.Flush(); writer.WriteLine(command); writer.Flush(); writer.WriteLine(player.transform.position.x); writer.Flush(); writer.WriteLine(player.transform.position.y); writer.Flush(); writer.WriteLine(player.transform.GetComponent <Rigidbody2D>().rotation); writer.Flush(); writer.WriteLine(type.ToString()); writer.Flush(); writer.WriteLine(player.GetComponent <PlayerData>().health + "/" + player.GetComponent <PlayerData>().maxHealth); writer.Flush(); writer.WriteLine(player.transform.Find("Weapon").transform.rotation.z); writer.Flush(); writer.WriteLine(weaponType); writer.Flush(); writer.WriteLine(vestType); writer.Flush(); writer.WriteLine(hatType); writer.Flush(); writer.WriteLine(mouthpieceType); writer.Flush(); writer.WriteLine(eyepieceType); writer.Flush(); writer.WriteLine(playerLevel); writer.Flush(); sentBaseData = true; } else { String command = "u"; writer.Flush(); writer.WriteLine(command); writer.Flush(); writer.WriteLine(player.transform.position.x); writer.Flush(); writer.WriteLine(player.transform.position.y); writer.Flush(); writer.WriteLine(player.transform.GetComponent <Rigidbody2D>().rotation); writer.Flush(); writer.WriteLine(player.GetComponent <PlayerData>().health + "/" + player.GetComponent <PlayerData>().maxHealth); writer.Flush(); writer.WriteLine(player.transform.Find("Weapon").transform.rotation.z); writer.Flush(); } //write bullet data foreach (GameObject bullet in bulletsFiredByPlayer) { if (bullet != null) { BulletPhysicsScript physics = bullet.GetComponent <BulletPhysicsScript>(); writer.WriteLine(bullet.transform.position.x); writer.Flush(); writer.WriteLine(bullet.transform.position.y); writer.Flush(); writer.WriteLine(bullet.transform.rotation.eulerAngles.z); writer.Flush(); writer.WriteLine(physics.bulletDamage); writer.Flush(); writer.WriteLine(physics.bulletSpeed); writer.Flush(); } else { continue; } } writer.WriteLine("ENDOFBULLETS"); writer.Flush(); //write end writer.WriteLine("END"); writer.Flush(); //read data Stopwatch watch = Stopwatch.StartNew(); if (nwStream.DataAvailable) { String line; while (!(line = reader.ReadLine()).Equals("END")) { if (!line.Equals("")) { data.Add(line); } if (line.Equals("") || line == null || watch.ElapsedMilliseconds >= 3000) //fail safe, this is hanging some times { break; } } } watch.Stop(); //update ping label GameObject.Find("pingText").GetComponent <UnityEngine.UI.Text>().text = watch.ElapsedMilliseconds / amountOfDataPerNewPlayer + "ms"; return(data); }