Пример #1
0
    public bool Host()
    {
        if (NetworkServer.Listen(45555))
        {
            Debug.Log("Server is listening...");
            NetworkServer.RegisterHandler(MsgType.Connect, GotClient);
            NetworkServer.RegisterHandler(MsgType.Disconnect, LostClient);

            // custom msgs
            NetworkServer.RegisterHandler(CustomNetMsg.Ready, GotReady);
            NetworkServer.RegisterHandler(CustomNetMsg.Name, GotName);
            NetworkServer.RegisterHandler(CustomNetMsg.Role, GotRole);
            NetworkServer.RegisterHandler(CustomNetMsg.MoveRequest, GotMoveRequest);
            NetworkServer.RegisterHandler(CustomNetMsg.AttackRequest, GotAttackRequest);

            UNetDissonance = GetComponent <Dissonance.Integrations.UNet_LLAPI.UNetCommsNetwork>();
            // initialize dissonance as server.
            UNetDissonance.InitializeAsServer();
            // make sure game master can talk to everyone.
            GetComponent <Dissonance.VoiceBroadcastTrigger>().ChannelType = Dissonance.CommTriggerTarget.Room;

            return(true);
        }

        return(false);
    }
Пример #2
0
    void GotId(NetworkMessage netMsg)
    {
        var msg = netMsg.ReadMessage <IdMessage>();

        // server must send a unique id once
        Debug.Assert(players.ContainsKey(msg.id) == false);

        players[msg.id] = new BasePlayer("Player" + msg.id.ToString(), 0, msg.id);

        // my unique id is not set so it must be mine.
        if (serverAssignedId < 0)
        {
            serverAssignedId = msg.id;

            UNetDissonance = GetComponent <Dissonance.Integrations.UNet_LLAPI.UNetCommsNetwork>();
            if (ip == "")
            {
                UNetDissonance.InitializeAsClient("127.0.0.1");
            }
            else
            {
                UNetDissonance.InitializeAsClient(ip);
            }
        }
        else if (lobbyGui != null)
        {
            lobbyGui.UpdateUI(players);
        }
    }
Пример #3
0
        private void Send(int connection, int channel, ArraySegment <byte> packet)
        {
            if (!_socketValid)
            {
                Log.Warn("Attempted to send message to an invalid socket");
                return;
            }

            var result = UNetCommsNetwork.Send(_socket, connection, channel, packet);

            if (result == NetworkError.Ok)
            {
                return;
            }

            if (IsFatalError(result))
            {
                FatalError(string.Format("Fatal error encountered sending packet: {0}", result));
            }
        }
Пример #4
0
 public UNetServer(UNetCommsNetwork network, ServerConnectionDetails connection)
 {
     _network    = network;
     _connection = connection;
 }
Пример #5
0
 public UNetClient([NotNull] UNetCommsNetwork network, ClientConnectionDetails server)
     : base(network)
 {
     _network = network;
     _server  = server;
 }