NetworkLobbyManager

class in UnityEngine.Networking

/

继承自:Networking.NetworkManager

切换到手册

描述

这是一个专用 NetworkManager,其中包括一个联网大厅。

该大厅设有用于跟踪已加入玩家的字段,以及会强制执行的最大玩家数量限制。它要求在大厅玩家对象上使用 NetworkLobbyPlayer 组件。

NetworkLobbyManager 派生自 NetworkManager,因此它实现了 NetworkManager 类提供的许多虚拟函数。为避免意外替换 NetworkLobbyManager 的功能,NetworkLobbyManager 上提供了以“OnLobby”开头的新虚拟函数。这些虚拟函数应在派生自 NetworkLobbyManager 的类(而不是 NetworkManager)上使用。

OnLobby*() 函数在 NetworkLobbyManager 基类上存在空实现,因此不必调用基类函数。

变量

gamePlayerPrefab这是要在 PlayScene 中创建的玩家的预制件。
lobbyPlayerPrefab这是要在 LobbyScene 中创建的玩家的预制件。
lobbyScene要用于大厅的场景。这类似于 NetworkManager 的 offlineScene。
lobbySlots这些字段可跟踪进入大厅的玩家。
maxPlayers游戏中允许的最大玩家数量。
maxPlayersPerConnection每个连接中的最大玩家数量。
minPlayers要使游戏准备好开始所需的最少玩家数量。
playScene要用于从大厅试玩游戏的场景。这类似于 NetworkManager 的 onlineScene。
showLobbyGUI此标志支持显示默认大厅 UI。

公共函数

CheckReadyToBeginCheckReadyToBegin 用于检查大厅中的所有玩家,查看其 readyToBegin 标志是否已设置。
OnLobbyClientAddPlayerFailed在客户端将玩家添加到大厅的操作失败后在客户端上调用此方法。
OnLobbyClientConnect在客户端连接到服务器后在客户端上调用此方法。
OnLobbyClientDisconnect在客户端与服务器断开连接后在客户端上调用此方法。
OnLobbyClientEnter这是一个钩子,允许在游戏客户端进入大厅时执行自定义行为。
OnLobbyClientExit这是一个钩子,允许在游戏客户端退出大厅时执行自定义行为。
OnLobbyClientSceneChanged在客户端完成新联网场景的加载后在客户端上调用此方法。
OnLobbyServerConnect在新客户端连接到服务器后在服务器上调用此方法。
OnLobbyServerCreateGamePlayer这允许自定义在服务器上创建 GamePlayer 对象的过程。
OnLobbyServerCreateLobbyPlayer这允许自定义在服务器上创建大厅玩家对象的过程。
OnLobbyServerDisconnect在客户端断开连接后在服务器上调用此方法。
OnLobbyServerPlayerRemoved在玩家删除后在服务器上调用此方法。
OnLobbyServerPlayersReady在大厅内的所有玩家均准备就绪后在服务器上调用此方法。
OnLobbyServerSceneChanged在联网场景完成加载后在服务器上调用此方法。
OnLobbyServerSceneLoadedForPlayer在服务器获知客户端已完成从大厅场景到游戏玩家场景的切换后在服务器上调用此方法。
OnLobbyStartClient在客户端启动后在客户端上调用此方法。
OnLobbyStartHost在主机启动后在主机上调用此方法。
OnLobbyStartServer在服务器启动后(包括主机启动后)在服务器上调用此方法。
OnLobbyStopClient在客户端停止后在客户端上调用此方法。
OnLobbyStopHost在主机停止后在主机上调用此方法。
SendReturnToLobby向服务器发送消息以使游戏返回到大厅场景。
ServerReturnToLobby调用此方法会导致服务器切换回大厅场景。
TryToAddPlayer这在客户端上使用,用于尝试将玩家添加到游戏中。

继承的成员

静态变量

networkSceneName当前网络场景的名称。
singletonNetworkManager 单例对象。

变量

gameObject此组件附加到的游戏对象。始终将组件附加到游戏对象。
tag此游戏对象的标签。
transform附加到此 GameObject 的 Transform。
runInEditMode允许 MonoBehaviour 的特定实例在编辑模式下运行(仅可在 Editor 中使用)。
useGUILayout禁用该属性可跳过 GUI 布局阶段。
autoCreatePlayer用于控制是否在连接时以及场景更改时自动创建玩家对象的标志。
channels要用于网络传输层的服务质量通道。
client管理器当前正在使用的 NetworkClient。
clientLoadedScene如果客户端在连接到服务器时加载了新场景,则为 true。
connectionConfig要使用的自定义网络配置。
customConfig用于启用自定义网络配置的标志。
dontDestroyOnLoad用于控制是否在场景更改时销毁 NetworkManager 对象的标志。
globalConfig要使用的传输层全局配置。
isNetworkActive如果 NetworkServer 或 NetworkClient 处于活动状态,则为 true。
logLevel专门面向用户的日志级别,适用于网络日志消息。
matches可加入的匹配列表。
matchHost配对服务器的主机名。
matchInfo调用 StartServer() 或 StartClient() 时将使用的 MatchInfo 实例。
matchMakerUMatch MatchMaker 对象。
matchName当前匹配的名称。
matchPort配对服务的端口。
matchSize当前匹配中的最大玩家数量。
maxConnections要支持的最大并发网络连接数量。
maxDelay在连接上发送数据包之前的最大延时。
migrationManager正在与 NetworkManager 配合使用的迁移管理器。
networkAddress当前使用的网络地址。
networkPort当前使用的网络端口。
numPlayersNumPlayers 是服务器上所有连接中处于活动状态的玩家对象的数量。
offlineScene离线时要切换到的场景。
onlineScene在线时要切换到的场景。
packetLossPercentage为客户端丢弃的传入和传出数据包所占的百分比。
playerPrefab用于在服务器上创建玩家对象的默认预制件。
playerSpawnMethod生成 NetworkManager 所使用玩家的当前方法。
runInBackground控制程序是否在后台运行。
scriptCRCCheck用于在服务器和客户端之间使用脚本 CRC 检查的标志。
secureTunnelEndpoint允许您指定 EndPoint 对象,而不是设置 networkAddress 和 networkPort(Xbox One 等部分平台需要)。
serverBindAddress与服务器绑定的 IP 地址。
serverBindToIP用于告知服务器是否绑定到特定 IP 地址的标志。
simulatedLatency要添加到客户端传入和传出数据包的延时(以毫秒为单位)。
spawnPrefabs将使用生成系统注册的预制件列表。
startPositions当前场景的当前已注册玩家起始位置列表。
useSimulator用于控制此 NetworkManager 启动的客户端是否使用模拟延迟和丢包的标志。
useWebSockets此属性可让 NetworkServer 监听 WebSockets 连接,而不是正常的传输层连接。

公共函数

BroadcastMessage调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTag此游戏对象是否使用 tag 进行了标记?
GetComponent如果游戏对象附加了类型为 type 的组件,则将其返回,否则返回 null。
GetComponentInChildren使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。
GetComponentInParent返回 GameObject 或其任何父项中类型为 type 的组件。
GetComponents返回 GameObject 中类型为 type 的所有组件。
GetComponentsInChildren返回 GameObject 或其任何子项中类型为 type 的所有组件。
GetComponentsInParent返回 GameObject 或其任何父项中类型为 type 的所有组件。
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
CancelInvoke取消该 MonoBehaviour 上的所有 Invoke 调用。
Invoke在 time 秒后调用 methodName 方法。
InvokeRepeating在 time 秒后调用 methodName 方法,然后每 repeatRate 秒调用一次。
IsInvoking是否有任何待处理的 methodName 调用?
StartCoroutine启动一个协同程序。
StopAllCoroutines停止在该行为上运行的所有协同程序。
StopCoroutine停止在该行为上运行的第一个名为 methodName 的协同程序或存储在 routine 中的协同程序。
GetStartPosition此方法可根据场景中的 NetworkStartPosition 对象找到生成位置。
IsClientConnected此方法可检查 NetworkManager 是否有客户端连接到服务器。
OnClientConnect连接到服务器时在客户端上调用。
OnClientDisconnect与服务器断开连接后在客户端上调用。
OnClientError发生网络错误时在客户端上调用。
OnClientNotReady服务器告知客户端其不再准备就绪时在客户端上调用。
OnClientSceneChanged服务器启动的场景加载完成时在客户端上调用。
OnDestroyMatch在服务器上处理 NetworkMatch.DestroyMatch 请求时发生的回调。
OnDropConnection在服务器上处理 NetworkMatch.DropConnection 匹配请求时发生的回调。
OnMatchCreate在服务器上处理 NetworkMatch.CreateMatch 请求时发生的回调。
OnMatchJoined在服务器上处理 NetworkMatch.JoinMatch 请求时发生的回调。
OnMatchList在服务器上处理 NetworkMatch.ListMatches 请求时发生的回调。
OnServerAddPlayer在客户端使用 ClientScene.AddPlayer 添加新玩家时在服务器上调用。
OnServerConnect新客户端连接到服务器时在服务器上调用。
OnServerDisconnect在客户端与服务器断开连接时在服务器上调用。
OnServerError在客户端连接发生网络错误时在服务器上调用。
OnServerReady在客户端准备就绪后在服务器上调用。
OnServerRemovePlayer在客户端删除玩家时在服务器上调用。
OnServerSceneChanged当服务器使用 ServerChangeScene() 启动的场景加载完成时,在服务器上调用。
OnSetMatchAttributes在服务器上处理 NetworkMatch.SetMatchAttributes 时发生的回调。
OnStartClient此钩子会在客户端启动时调用。
OnStartHost此钩子会在主机启动时调用。
OnStartServer此钩子会在服务器启动时(包括主机启动时)调用。
OnStopClient此钩子会在客户端停止时调用。
OnStopHost此钩子会在主机停止时调用。
OnStopServer此钩子会在服务器停止时(包括主机停止时)调用。
ServerChangeScene此方法会导致服务器切换场景并设置 networkSceneName。
SetMatchHost此方法可设置 MatchMaker 服务的地址。
SetupMigrationManager此方法可设置 NetworkMigrationManager 对象,从而与此 NetworkManager 配合使用。
StartClient此方法会启动网络客户端。它使用 networkAddress 和 networkPort 属性作为要连接到的地址。
StartHost此方法会启动网络“主机”- 位于同一应用程序中的服务器和客户端。
StartMatchMaker此方法会为 NetworkManager 启动 MatchMaker。
StartServer此方法会启动一个新服务器。
StopClient停止管理器正在使用的客户端。
StopHost此方法会同时停止管理器正在使用的客户端和服务器。
StopMatchMaker停止 NetworkManager 正在使用的 MatchMaker。
StopServer停止管理器正在使用的服务器。
UseExternalClient这样一来,NetworkManager 可以使用在 NetworkManager 外部创建的客户端对象,而不是使用 StartClient()。

静态函数

print将消息记录到 Unity 控制台(与 Debug.Log 相同)。
RegisterStartPosition将游戏对象的变换组件注册为玩家生成位置。
Shutdown完全关闭 NetworkManager 并销毁单例。
UnRegisterStartPosition取消将游戏对象的变换组件注册为玩家生成位置。

消息

AwakeAwake 在加载脚本实例时调用。
FixedUpdate如果启用了 MonoBehaviour,则每个固定帧率帧调用该函数。
LateUpdate如果启用了 Behaviour,则每帧调用 LateUpdate。
OnAnimatorIK用于设置动画 IK(反向运动学)的回调。
OnAnimatorMove用于处理动画移动以修改根运动的回调。
OnApplicationFocus当玩家获得或失去焦点时,发送给所有 GameObject。
OnApplicationPause当应用程序暂停时,发送给所有 GameObject。
OnApplicationQuitSent to all game objects before the application is quit.
OnAudioFilterRead如果实现了 OnAudioFilterRead,Unity 将在音频 DSP 链中插入一个自定义滤波器。
OnBecameInvisibleOnBecameInvisible 在渲染器对任何摄像机都不可见时调用。
OnBecameVisibleOnBecameVisible 在渲染器变为对任意摄像机可见时调用。
OnCollisionEnter当该碰撞体/刚体已开始接触另一个刚体/碰撞体时,调用 OnCollisionEnter。
OnCollisionEnter2D当传入碰撞体与该对象的碰撞体接触时发送(仅限 2D 物理)。
OnCollisionExit当该碰撞体/刚体已停止接触另一个刚体/碰撞体时,调用 OnCollisionExit。
OnCollisionExit2D当另一个对象上的碰撞体停止接触该对象的碰撞体时发送(仅限 2D 物理)。
OnCollisionStay对应正在接触刚体/碰撞体的每一个碰撞体/刚体,每帧调用一次 :ref::OnCollisionStay。
OnCollisionStay2D在另一个对象上的碰撞体正在接触该对象的碰撞体时发送每个帧(仅限 2D 物理)。
OnConnectedToServer成功连接到服务器后在客户端上调用。
OnControllerColliderHit当该控制器在执行 Move 时撞到碰撞体时调用 OnControllerColliderHit。
OnDestroy销毁附加的行为将导致游戏或场景收到 OnDestroy。
OnDisable该函数在行为被禁用时调用。
OnDisconnectedFromServer当连接丢失或与服务器断开连接时,在客户端上调用。
OnDrawGizmos如果您想绘制能够选择并且始终绘制的辅助图标,则可以实现 OnDrawGizmos。
OnDrawGizmosSelected如果选择了对象,则实现 OnDrawGizmosSelected 来绘制辅助图标。
OnEnable该函数在对象变为启用和激活状态时调用。
OnFailedToConnect出于某种原因连接尝试失败时,在客户端上调用。
OnFailedToConnectToMasterServer在连接到 MasterServer 时发生问题的情况下,在客户端或服务器上调用。
OnGUI系统调用 OnGUI 来渲染和处理 GUI 事件。
OnJointBreak在附加到相同游戏对象的关节断开时调用。
OnJointBreak2D在附加到相同游戏对象的 Joint2D 断开时调用。
OnMasterServerEvent在从 MasterServer 报告事件时,在客户端或服务器上调用。
OnMouseDown当用户在 GUIElement 或 Collider 上按下鼠标按钮时,将调用 OnMouseDown。
OnMouseDrag当用户单击 GUIElement 或 Collider 并仍然按住鼠标时,将调用 OnMouseDrag。
OnMouseEnter当鼠标进入 GUIElement 或 Collider 时调用。
OnMouseExit当鼠标不再处于 GUIElement 或 Collider 上方时调用。
OnMouseOver当鼠标悬停在 GUIElement 或 Collider 上时,每帧调用一次。
OnMouseUp当用户松开鼠标按钮时,将调用 OnMouseUp。
OnMouseUpAsButton松开鼠标时,仅当鼠标在按下时所在的 GUIElement 或 Collider 上时,才调用 OnMouseUpAsButton。
OnNetworkInstantiate在已通过 Network.Instantiate 进行网络实例化的对象上调用。
OnParticleCollision当粒子击中碰撞体时,将调用 OnParticleCollision。
OnParticleTrigger当粒子系统中的任何粒子满足触发模块中的条件时,将调用 OnParticleTrigger。
OnPlayerConnected每当有新玩家成功连接,就在服务器上调用。
OnPlayerDisconnected每当有玩家与服务器断开连接,就在服务器上调用。
OnPostRender在摄像机完成场景渲染后,将调用 OnPostRender。
OnPreCullOnPreCull 在摄像机剔除场景前调用。
OnPreRenderOnPreRender 在摄像机开始渲染场景前调用。
OnRenderImageOnRenderImage 在图像的所有渲染操作全部完成后调用。
OnRenderObjectOnRenderObject 在摄像机渲染场景后调用。
OnSerializeNetworkView用于在网络视图监视的脚本中自定义变量同步。
OnServerInitialized每当调用 Network.InitializeServer 并且完成时,对该服务器调用该函数。
OnTransformChildrenChanged当 GameObject 的变换的子项列表发生更改时,将调用该函数。
OnTransformParentChanged当 GameObject 的变换的父属性发生更改时,将调用该函数。
OnTriggerEnter当 Collider other 事件进入该触发器时调用 OnTriggerEnter。
OnTriggerEnter2D当另一个对象进入附加到该对象的触发碰撞体时发送(仅限 2D 物理)。
OnTriggerExit当 Collider other 已停止接触该触发器时调用 OnTriggerExit。
OnTriggerExit2D当另一个对象离开附加到该对象的触发碰撞体时发送(仅限 2D 物理)。
OnTriggerStayOnTriggerStay is called once per frame for every Collider other that is touching the trigger.
OnTriggerStay2D在另一个对象位于附加到该对象的触发碰撞体之内时发送每个帧(仅限 2D 物理)。
OnValidate加载脚本后或 Inspector 中的值发生更改时,将调用该函数(只能在 Editor 中调用)。
OnWillRenderObject如果对象可见并且不是 UI 元素,则为每个摄像机调用 OnWillRenderObject。
Reset重置为默认值。
StartStart is called on the frame when a script is enabled just before any of the Update methods is called the first time.
Update如果启用了 MonoBehaviour,则每帧调用 Update。