コード例 #1
0
    private void AddConnection(int connectionId)
    {
        string recAddress;
        int    port;

        UnityEngine.Networking.Types.NetworkID recNetId;
        UnityEngine.Networking.Types.NodeID    recNodeId;
        byte recError;

        NetworkTransport.GetConnectionInfo(socketId, connectionId, out recAddress, out port, out recNetId, out recNodeId, out recError);
        NetworkPlayer player = GetPlayer(recAddress);

        // Jugador existía y se reconecta.
        if (player != null)
        {
            player.connected    = true;
            player.connectionId = connectionId;
            SendMessageToClient(connectionId, "ChangeScene/" + player.room.sceneToLoad, true);
            timesScene1IsLoaded += 1;
            messageHandler.SendAllData(connectionId, player.room, true);
            UnityEngine.Debug.Log("Client " + connectionId + " reconnected");
            return;
        }

        //Jugador no existía y se crea uno nuevo.
        Room room = SearchRoom();

        if (room == null)
        {
            room = new Room(rooms.Count, this, messageHandler, maxJugadores);
            rooms.Add(room);
        }

        room.AddPlayer(connectionId, recAddress);
    }
コード例 #2
0
    private void AddConnection(int connectionId)
    {
        int    port;
        byte   recError;
        string recAddress;

        UnityEngine.Networking.Types.NodeID    recNodeId;
        UnityEngine.Networking.Types.NetworkID recNetId;

        NetworkTransport.GetConnectionInfo(socketId, connectionId, out recAddress, out port, out recNetId, out recNodeId, out recError);
        NetworkPlayer player = GetPlayer(recAddress);

        // Jugador existía y se reconecta.
        if (player != null)
        {
            player.connected    = true;
            player.connectionId = connectionId;
            SendMessageToClient(connectionId, "ChangeScene/" + player.room.sceneToLoad, true);
            List <NetworkPlayer> players = player.room.players;
            foreach (NetworkPlayer connectedPlayer in players)
            {
                if (connectedPlayer.controlOverEnemies)
                {
                    SendMessageToClient(connectionId, "PlayerHasReturned/", true);
                    break;
                }
            }
            messageHandler.SendAllData(recAddress, player.room);
            player.room.SendControlEnemiesToClient(player, false);
            player.SendDataToRoomBoxManager();
            UnityEngine.Debug.Log("Client " + recAddress + " reconnected");
            return;
        }

        //Jugador no existía y se crea uno nuevo.
        Room room = SearchRoom();

        if (room == null)
        {
            roomCounter++;
            RoomLogger logger = null;
            if (lastDestroyedRoom != null)
            {
                logger            = lastDestroyedRoom.log;
                lastDestroyedRoom = null;
            }
            room = new Room(roomCounter, this, messageHandler, maxPlayers, logger);
            RoomManager rm = GameObject.FindGameObjectWithTag("RoomManager").GetComponent <RoomManager>();
            if (!rm)
            {
                UnityEngine.Debug.LogError("No se encontró RoomManager en ServerScene. uwu 1");
            }
            rm.AddNewRoom(room);
            rooms.Add(room);
        }

        room.AddPlayer(connectionId, recAddress);
    }