Exemplo n.º 1
0
    public void ServerFound(BroadcastPacket brdPacket)
    {
        //Extract port from package
        ushort     port     = NUUtilities.GetUInt16(brdPacket.packet.GetCleanData());
        IPEndPoint endPoint = new IPEndPoint(brdPacket.senderIp, port);

        //Try to add server
        if (!availableServers.Add(endPoint))
        {
            return;
        }

        //Instantiate GUI Prefab
        GameObject serverEntry = GameObject.Instantiate(serverEntryPrefab, serverListPanel);

        Text[] texts = serverEntry.GetComponentsInChildren <Text>();
        //Update IPAddress
        texts[0].text = brdPacket.senderIp.ToString();
        //Update Port
        texts[1].text = port.ToString();

        Button connect = serverEntry.GetComponentInChildren <Button>();

        connect.onClick.AddListener(() => { ConnectToServer(endPoint, serverEntry); });
    }
Exemplo n.º 2
0
    private void FixedUpdate()
    {
        if (NUServer.started)         //Is Server!
        {
            //Send Game-state to everyone online
            Packet stateData = new Packet(GetStateMsg(), NUServer.GetConnectedClients());
            NUServer.SendUnreliable(stateData);
        }

        // Test for multipart (really big) packet
        if (Input.GetKeyUp(KeyCode.I))
        {
            byte[] randomBuffer = new byte[8192];
            for (int i = 0; i < 8192; i++)
            {
                randomBuffer[i] = (byte)(Random.Range(0, 255));
            }

            if (NUServer.started)
            {
                Packet multipartTestPacket = new Packet(randomBuffer,
                                                        NUServer.GetConnectedClients(), Packet.TypeFlag.DATA);
                NUServer.SendReliable(multipartTestPacket);
            }
            else if (NUClient.connected)
            {
                Packet multipartTestPacket = new Packet(randomBuffer);
                NUClient.SendReliable(multipartTestPacket);
            }
        }

        // Test for sequenced packet
        if (Input.GetKeyUp(KeyCode.J))
        {
            Packet firstPacket  = new Packet("First", packetId: NUUtilities.GeneratePacketId());
            Packet secondPacket = new Packet("Second", packetId: NUUtilities.GeneratePacketId());
            Packet thirdPacket  = new Packet("Third", packetId: NUUtilities.GeneratePacketId());
            Debug.LogError("Third");
            Debug.LogError("Second");
            Debug.LogError("First");
            if (NUServer.started)
            {
                thirdPacket.OverrideDestination(NUServer.GetConnectedClients());
                NUServer.SendReliableSequenced(thirdPacket);                    //Send third first
                secondPacket.OverrideDestination(NUServer.GetConnectedClients());
                NUServer.SendReliableSequenced(secondPacket);                   //Send second second
                firstPacket.OverrideDestination(NUServer.GetConnectedClients());
                NUServer.SendReliableSequenced(firstPacket);                    //Then first third
            }
            else if (NUClient.connected)
            {
                NUClient.SendReliableSequenced(thirdPacket);                    //Send third first
                NUClient.SendReliableSequenced(secondPacket);                   //Send second second
                NUClient.SendReliableSequenced(firstPacket);                    //Then first third
            }
        }
    }
Exemplo n.º 3
0
    private byte[] GetStateData()
    {
        byte[] state = new byte[playerObjects.Count * (32 /*GUID*/ + 12 /*XYZ*/)];
        int    i     = 0;

        foreach (var player in playerObjects)
        {
            //Copy GUID Data
            Array.Copy(player.Key.ToByteArray(), 0, state, i * 44, 32);

            //Copy Position Data
            Vector3 pos     = player.Value.transform.position;
            byte[]  posData = NUUtilities.GetBytes(pos);
            Array.Copy(posData, 0, state, i * 44 + 32, 12);
        }
        return(state);
    }
Exemplo n.º 4
0
 public void CreateNewServer()
 {
     NUServer.Start(NUUtilities.ListIPv4Addresses()[0]);
     NUClient.Connect(NUUtilities.ListIPv4Addresses()[0]);
 }
Exemplo n.º 5
0
 private void Start()
 {
     NUClient.SetupBroadcast(NUUtilities.ListIPv4Addresses()[0]);
 }