public void SpawnPlayer(SpawnPacket packet) { Debug.Log("Spawning player " + packet.player); GameObject playerPrefab = (GameObject)Resources.Load("Prefabs/Player"); Vector3 position = new Vector3(packet.X, packet.Z); Quaternion rotation = new Quaternion(); GameObject player = MonoBehaviour.Instantiate(playerPrefab, position, rotation); // if client is local player, add controls and focus camera on them if (packet.player == StaticManager.LocalPlayerID) { player.AddComponent <CharacterController>(); player.tag = "Player"; } else { player.transform.name = packet.player; } StaticManager.Players.Add(packet.player, player); Camera.main.GetComponent <CameraController>().ChangeTargets(player); }
public void ReceiveMessages(object peer) { NetIncomingMessage message; while ((message = client.ReadMessage()) != null) { Debug.Log("Message recieved from server"); switch (message.MessageType) { case NetIncomingMessageType.Data: //get packet type byte packetType = message.ReadByte(); //create packet Packet packet; switch (packetType) { case (byte)PacketTypes.LocalPlayerPacket: packet = new LocalPlayerPacket(); packet.NetIncomingMessageToPacket(message); ExtractLocalPlayerInformation((LocalPlayerPacket)packet); break; case (byte)PacketTypes.PlayerDisconnectsPacket: packet = new PlayerDisconnectsPacket(); packet.NetIncomingMessageToPacket(message); DisconnectPlayer((PlayerDisconnectsPacket)packet); break; case (byte)PacketTypes.PositionPacket: packet = new PositionPacket(); packet.NetIncomingMessageToPacket(message); UpdatePlayerPosition((PositionPacket)packet); break; case (byte)PacketTypes.DicePacket: packet = new DicePacket(); packet.NetIncomingMessageToPacket(message); UpdateDiceFace((DicePacket)packet); break; case (byte)PacketTypes.SpawnPacket: packet = new SpawnPacket(); packet.NetIncomingMessageToPacket(message); SpawnPlayer((SpawnPacket)packet); break; default: Debug.Log("Unhandled packet type"); break; } break; case NetIncomingMessageType.DebugMessage: case NetIncomingMessageType.ErrorMessage: case NetIncomingMessageType.WarningMessage: case NetIncomingMessageType.VerboseDebugMessage: string text = message.ReadString(); Debug.Log(text); break; default: Debug.Log("Unhandled message type"); break; } client.Recycle(message); } }