Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            }
        }