示例#1
0
 BaseTeamLayout CreateTeamLayout(RoomData.GameMode gameMode)
 {
     if (gameMode == RoomData.GameMode.FreeForAll)
     {
         return(teamListHolder.gameObject.AddComponent <SingleTeamLayout>());
     }
     return(teamListHolder.gameObject.AddComponent <MultipleTeamsLayout>());
 }
示例#2
0
    void QueryForAvilableRooms(RoomData.GameMode gameMode)
    {
        var lobbyName = RoomData.GameModeToLobbyName[gameMode];

        void callback(RoomAvailable[] rooms)
        {
            var wrappedRooms = rooms.ToList()
                               .Select(room => RoomData.FromColyseusRoom(gameMode, room)).ToList();

            availableRooms.UpdateRoomList(lobbyName, wrappedRooms);
        }

        ColyseusConnector.Instance.Client.GetAvailableRooms(lobbyName, callback);
    }
示例#3
0
    public void CreateRoom(RoomData.GameMode gameMode, int maxClients)
    {
        Room?.Leave();

        Room = ColyseusConnector.Instance.Client.Join(RoomData.GameModeToLobbyName[gameMode], new Dictionary <string, object>
        {
            { "forceCreate", true },
            { "maxClients", maxClients },
        });
        RoomData = new RoomData
        {
            Mode       = gameMode,
            MaxClients = maxClients,
        };
        ConnectToRoom();
    }
示例#4
0
 internal void CreateRoom(RoomData.GameMode gameMode, int maxClients)
 {
     ColyseusRoom.Instance.CreateRoom(gameMode, maxClients);
     SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
 }