Mirror/docs/Components/NetworkLobbyManager.md
Chris Langsenkamp 7e7683766f Network Lobby Manager & Lobby Player (#356)
* Initial Commit with Unity's Network Lobby Components

* Lobby Components WIP

* Massive simplifications and structural changes to NetworkLobbyManager and NetworkLobbyPlayer

* Replaced more default messages with Command structure resulting in further simplification and less LOC

* Completed removal of messages

* Code Formatting and GUI Layout

* Fixed bugs and finished Remove feature in UI

* Added Network Lobby Manager Doc

* Network Lobby Docs

* Network Lobby Player Doc

* Updated doc and image about Offline Scene

* changed to PNG

* Added Lobby components to navigation

* Conformed to naming convention
Removed some leftover cruft
Removed maxPlayers (redundant to maxConnections)
Trapped and killed null ref in OnServerDisconnect

* Fixed mistake in OnServerDisconnect

* Fix Active Scene check

* Alow clean switch to Offline scene

* Add Help URL attributes to components

* Added Help URL Attributes

* Fixed OnGUI logic error.

* Added Example and README

* Fixed Disconnect handler

* Updated Docs

* Added Header for Inspector

* Finished Lobby Example Minigame

* Minor cleanup

* Set targetFramerates

* Code Cleanup
Changed to extended Lobby Manager for player Indexes & colors

* Minor changes to align with Mirror's NetworkManager

* Fixed logic error

* SyncVar Hook Workaround
Random Start Positions

* Revert making CallOnClientEnterLobby public

* Added documentation to the extension

* Minor code rearrangement

* Made OnGUI virtual so it can be overridden.
Added AllPlayersReady bool for convenience to extenders
Start Game enhancement to example.

* added comments

* Corrected namespaces and usings

* Reworked DontDestroyOnLoad
LobbyPlayer: Moved code from OnStartClient to Start
Added LobbyPlayerExt to Lobby Example
Code cleanup, added regions
Fixed Start Game button bug

* Final push of Lobby example to make sure it's complete.

* Improved Lobby Example

* Code cleanup

* Added ground texture
Set player camera angle
Adjusted lighting angle

* Updated ReadMe
Cleaned up privates
Fixed example to use SetParent
Changed to 5 max connections in example

* Prefab name fixes due to Mirror master's changes
Changed camera handling and GamePlayer Prefab
Two more SetParent fixes
Demoted two warnings to information
Added more comments to example scripts

* Revisions based on Vis2K review...more to come.

* Added f's where assigning literals to floats

* Removed manual calls to SyncVar Hooks because the bug is now fixed.

* Changed to GUILayout

* wrapped in namespace

* Changed to GUILayout

* All changes per peer review

* Renamed folder to Lobby.

* Fix due to change in Mirror 1691

* Renamed Scenes
Added LobbyScene property to OfflineGUI script.
2019-02-20 16:58:50 +01:00

47 lines
1.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Network Lobby Manager
**Please see the Lobby example in the Examples folder in your Mirror folder
The NetworkLobbyManager is a specialized type of [NetworkManager](NetworkManager) that provides a multiplayer lobby before entering the main play scene of the game. It allows you to set up a network with:
- A maximum player limit
- Automatic start when all players are ready
- Option to prevent players from joining a game in progress
- Customizable ways for players to choose options while in lobby
 
There are two types of player objects with the NetworkLobbyManager:
**Lobby Player Prefab**
- One for each player
- Created when client connects, or player is added
- Persists until client disconnects
- Holds ready flag and configuration data
- Handles commands in the lobby
- Must use the [NetworkLobbyPlayer](NetworkLobbyPlayer) component
**Player Prefab**
- One for each player
- Created when game scene is started
- Destroyed when leaving game scene
- Handles commands in the game
 
![Network Lobby Manager](NetworkLobbyManager.PNG)
 
## Properties
- **Show Lobby GUI**
Show the default OnGUI controls for the lobby.
- **Min Players**
Minimum number of players needed to start a game.
- **Lobby Player Prefab**
The prefab to create for players when they enter the lobby (requires NetworkLobbyPlayer component).
- **Lobby Scene**
The scene to use for the lobby.
- **Gameplay Scene**
The scene to use for main game play.