Lobby Management In Game¶
The “lobby management in game” methods handle lobby operations while the player is in an online multiplayer match. These methods are chiefly listeners for events such as leaving the lobby, changing lobby data and changing the state of lobby members. Separating the lobby management in game from the one in menu allows implementing different behaviors in response to the same actions.
Initialization and Termination¶
The LobbyManagementInGame listeners are initialized by the
LobbyDataListenerMainMenu.OnLobbyDataUpdated() method described in the previous implementation example. This method included in the Matchmaking script (available at Assets/Scripts/GalaxyManager/Features/Matchmaking.cs) calls the
LobbyManagmentInGameListenersInit method, which in turn initializes the
When the player exits the match (either by quitting to the main menu or when the host leaves the lobby), all listeners are disposed of.
Definitions of Listeners¶
This listener receives callbacks when the user succeeds or fails to leave a lobby. It provides the GalaxyID of the lobby the player left. Regardless of the result, this listener provides both the
lobbyID it was trying to leave and the result of calling the
In this demo we use lobby topology of the FCM type without ownership transition (LOBBY_TOPOLOGY_TYPE_FCM). Because of this, LobbyLeftListenerInGame() receives a callback in two situations:
- when the player (client) leaves the lobby,
- when the lobby host (owner) leaves.
This listener receives callbacks when a given lobby or specific lobby member data is retrieved. It provides the GalaxyID of the lobby and/or the lobby member whose data was changed. If only the lobby data was changed, the member’s GalaxyID will be empty and we can check this using the
It listens for the event of changing the state of a lobby member. It provides GalaxyID of the lobby and GalaxyID of the lobby member whose state was changed, along with a specific LobbyMemberStateChange.