Ejemplo n.º 1
0
        void HandleMovement(NetworkServer.IClient client, Packet packet)
        {
            try
            {
                if (client.Id != Id)
                {
                    return;
                }

                var bytes        = packet.ToArray();
                var localPacket  = new Packet(bytes);
                var packetLength = localPacket.ReadInt();
                var clientId     = localPacket.ReadInt();
                localPacket.SetId((PacketId)localPacket.ReadInt());

                if (localPacket.Id != PacketId.PlayerMovement)
                {
                    return;
                }

                var inputLength = localPacket.ReadInt();
                var inputs      = new bool[inputLength];
                for (var index = 0; index < inputs.Length; index++)
                {
                    inputs[index] = localPacket.ReadBool();
                }
                var rotation = localPacket.ReadQuaternion();

                SetInput(inputs, rotation);
            }
            catch (Exception e)
            {
                Debug.Log($"Error reading packet from client {client.Id}: " + e);
            }
        }
Ejemplo n.º 2
0
 protected override void OnClientReceivedPacket(NetworkServer.IClient client, Packet packet)
 {
     // Debug.Log($"The client {client.Id} has sent a message, id: {packet.Id}");
     if (packet.Id == PacketId.TestPacket)
     {
         Debug.Log($"The client {client.Id} has sent a test message, msg: {packet.ReadString()}");
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        ///     Handles a client disconnection.
        /// </summary>
        void OnDisconnect(NetworkServer.IClient client)
        {
            var id = client.Id;
            var disconnectedPlayer = _players[id];

            _players.Remove(id);
            ThreadManager.Schedule(() => Destroy(disconnectedPlayer.gameObject));
            //Send destroy
        }
Ejemplo n.º 4
0
        void SpawnPlayer(NetworkServer.IClient client)
        {
            var position = Vector3.up + _distanceBetweenPlayerSpawn;
            var rotation = Quaternion.identity;
            var userName = string.Empty;
            var id       = client.Id;
            var player   = Instantiate(playerPrefab);

            _players.Add(id, player);
            player.Initialize(id, userName, position, rotation);
            SendNewPlayerToAllPlayers(player);
            SendAllPlayersToNewPlayer(player);
            _distanceBetweenPlayerSpawn += Vector3.forward;
        }
Ejemplo n.º 5
0
 protected override void OnClientDisconnect(NetworkServer.IClient client)
 {
     Debug.Log($"A client has disconnect with Id {client.Id}");
 }
 /// <summary>
 ///     Called when a client receives a packet.
 /// </summary>
 protected virtual void OnClientReceivedPacket(NetworkServer.IClient client, Packet packet)
 {
 }
 /// <summary>
 ///     Called when a client is disconnected from the server.
 /// </summary>
 protected virtual void OnClientDisconnect(NetworkServer.IClient client)
 {
 }