예제 #1
0
        public static void SendPacket <T>(NetPeer peer, T packet) where T : IPacketStruct
        {
            Packet packetAttr = (Packet)typeof(T).GetCustomAttribute(typeof(Packet), false);

            if (packetAttr == null)
            {
                Console.WriteLine("Error: No Packet attribute on packet \"" + typeof(T).FullName + "\"");
                return;
            }

            DeliveryMethod deliveryMethod = packetAttr.Reliable ? DeliveryMethod.ReliableOrdered : DeliveryMethod.Unreliable;

            byte[] data = PacketSerializer.SerializePacket(packet);
            peer.Send(data, deliveryMethod);
        }