Labr GetLabr(int LabrSize) { byte[] data = new byte[LabrSize]; reader.Read(data, 0, LabrSize); Labr result = Serializator.ByteArrayToObject(data) as Labr; return(result); }
public void Init(TcpClient client, bool isHost) { this.client = client; this.isHost = isHost; stream = this.client.GetStream(); writer = new BinaryWriter(stream); reader = new BinaryReader(stream); keys = new List <char>(); playerDoors = new List <char>(); OpenedDoors = new List <char>(); enemyKeys = new List <Point>(); enemyDoors = new List <Point>(); OpenedDoor = 'Q'; PickedKey = 'q'; realSizeX = MultiplayerConfig.Width; realSizeY = MultiplayerConfig.Height; if (isHost) { labr = new Labr(); Debug.Log(realSizeX); Debug.Log(realSizeY); fieldManager.InitField(realSizeX, realSizeY, this); labr.maze = fieldManager.maze; labr.start_x = fieldManager.startX; labr.start_y = fieldManager.startY; byte[] array = ConvertToByteArray(labr); LabrSize = array.Length; Debug.Log(LabrSize); writer.Write(LabrSize); yourName = MultiplayerConfig.Name; writer.Write(array, 0, array.Length); } else { yourName = MultiplayerConfig.Name; LabrSize = reader.ReadInt32(); Debug.Log(LabrSize); labr = GetLabr(LabrSize); realSizeX = labr.maze[0].Count; realSizeY = labr.maze.Count; } maze = labr.maze; palyerCurrentX = labr.start_x + 1.5f; palyerCurrentY = labr.start_y + 1.5f; enemyCurrentX = labr.start_x + 1.5f; enemyCurrentY = labr.start_y + 1.5f; fieldManager.DisplayMaze(labr.maze, realSizeX, realSizeY); if (yourName != null) { writer.Write(yourName); } enemyName = reader.ReadString(); player.GetComponent <Transform>().position = new Vector3(palyerCurrentX, palyerCurrentY, 0); enemy.GetComponent <Transform>().position = new Vector3(enemyCurrentX, enemyCurrentY, 0); Thread thread = new Thread(new ThreadStart(receiveMessage)); thread.Start(); uiManager.SetNames(yourName, enemyName); }
byte[] ConvertToByteArray(Labr labr) { byte[] data = Serializator.ObjectToByteArray(labr); return(data); }