网络管理器回调

本节介绍根据您对游戏主机服务器的连接类型收到的网络管理器回调。

本地连接回调

根据您的游戏状态收到不同的回调。有三个状态可用。这些可以在网络管理器HUD中设置。

 6.210 网络管理器回调  - 图1

  1. 主机:要在主机模式下设置您的游戏,请选择LAN主机(H)或使用API​​功能StartHost()。
  2. 客户端:要在客户端模式下设置您的游戏,请选择局域网客户端(C)并将服务器IP输入到文本字段中,或使用API​​函数StartClient()。请注意,您的服务器IP必须位于同一本地网络中 - 或者,如果要连接到同一台计算机,则可以键入“localhost”。
  3. 服务器:要在服务器模式下设置您的游戏,请选择局域网服务器(S)或使用API​​功能StartServer()。

在运行期间,网络管理器HUD的控件也可以在网络管理器HUD组件的Inspector窗口中找到。单击运行时控件以访问这些。

 6.210 网络管理器回调  - 图2

此页面详细介绍了每种模式下收到的回调。要了解有关设置游戏状态的更多信息,请参阅使用网络管理器:游戏状态管理。

某些网络管理器回调需要您运行多个游戏实例(例如,两个独立实例,或者一个独立实例,另一个在编辑器中)。这些实例可以位于同一台计算机上或不同的计算机上,只要这些计算机通过本地网络连接即可。

主机回调

为了获得这些回调,你需要有两个游戏实例,一个以主机模式运行,另一个以客户机模式运行。这些回调仅在以主机模式运行的实例上调用。

按照以下步骤获取回调。要停止实例,请按停止或使用API​​函数StopHost()

第1步:启动主机实例

  1. Start()函数被调用)
  2. OnStartHost
  3. OnStartServer
  4. OnServerConnect
  5. OnStartClient
  6. OnClientConnect
  7. OnServerSceneChanged
  8. OnServerReady
  9. OnServerAddPlayer
  10. OnClientSceneChanged

第2步:启动客户端实例

  1. OnServerConnect
  2. OnServerReady
  3. OnServerAddPlayer

第3步:停止客户端实例

  1. OnServerDisconnect

第4步:停止主机实例

  1. OnStopHost
  2. OnStopServer
  3. OnStopClient

客户端回调

为了获得这些回调,你需要有两个游戏实例,一个运行在服务器模式下,另一个运行在客户端模式下。这些回调仅在客户端模式下运行的实例上调用。

首先启动服务器模式实例,然后按照以下步骤获取回调。要停止实例,请按停止或使用API​​函数StopHost()

第1步:启动客户端实例

  1. Start()函数被调用)
  2. OnStartClient
  3. OnClientConnect
  4. OnClientSceneChanged

第2步:停止服务器实例

  1. OnStopClient
  2. OnClientDisconnect

服务器回调

为了获得这些回调,你需要有两个游戏实例,一个运行在服务器模式下,另一个运行在客户端模式下。这些回调仅在运行于服务器模式的实例上调用。

按照以下步骤获取回调。要停止实例,请按停止或使用API​​函数StopHost()

第1步:启动服务器实例

  1. Start()函数被调用)
  2. OnStartServer
  3. OnServerSceneChanged

第2步:启动客户端实例

  1. OnServerConnect
  2. OnServerReady
  3. OnServerAddPlayer

第3步:停止客户端实例

  1. OnServerDisconnect

第4步:停止服务器实例

  1. OnStopServer

互联网连接回调

与主机服务器的Internet连接通过Unity MatchMaker系统进行,该系统通过中继服务器连接您。

根据您的游戏状态收到不同的回调。MatchMaker有两种状态:主机和客户端。要使用MatchMaker,请运行游戏并从NetworkManagerHUD菜单中选择启用匹配器(M):

 6.210 网络管理器回调  - 图3

这将打开MatchMaker菜单:

 6.210 网络管理器回调  - 图4

  1. 主持人:要在主持人模式下设置您的游戏,请选择启用匹配器(M > 创建互联网匹配或使用API​​功能CreateMatch()
  2. 客户端:要在客户端模式下设置您的游戏,请选择启用匹配器(M > 查找Internet匹配 > 加入Internet匹配或使用API​​函数JoinMatch()

此页面详细介绍了每种模式下收到的回调。要了解有关设置游戏状态的更多信息,请参阅使用网络管理器:游戏状态管理。

某些网络管理器回调需要您运行多个游戏实例(例如,两个独立实例,或者一个独立实例,另一个在编辑器中)。这些实例可以位于同一台计算机上,也可以位于不同的计算机上,也可以位于同一网络或不同的网络上,但所有计算机都必须具有Internet连接。MatchMaker允许您通过互联网连接游戏的实例,因此具有游戏实例的机器可能位于世界的不同地区。

主机MatchMaker回调

为了获得这些回调,你需要有两个游戏实例,一个以主机模式运行,另一个以客户机模式运行。这些回调仅在以主机模式运行的实例上调用。

按照以下步骤获取回调。要停止实例,请按停止或使用API​​函数StopHost()

第1步:启动主机实例

  1. Start()函数被调用)
  2. OnStartHost
  3. OnStartServer
  4. OnServerConnect
  5. OnStartClient
  6. OnMatchCreate
  7. OnClientConnect
  8. OnServerSceneChanged
  9. OnServerReady
  10. OnServerAddPlayer
  11. OnClientSceneChanged

步骤2:启动客户端实例并选择加入Internet匹配或使用API​​函数JoinMatch()

  1. OnServerConnect
  2. OnServerReady
  3. OnServerAddPlayer

第3步:停止客户端实例

  1. OnServerDisconnect

客户端MatchMaker回调

要获得这些回调,需要运行两个游戏实例,一个在主机模式下,另一个在客户端模式下运行。这些回调仅在客户端模式下运行的实例上调用。

首先启动主机模式实例,然后启动客户端实例。按照以下步骤获取回调。要停止实例,请按停止或使用API​​函数StopHost()

步骤1:在客户端实例上,按查找网络匹配或使用API​​函数ListMatches()查找在线游戏列表

  1. Start()函数被调用)
  2. OnMatchList

步骤2:在客户端实例上,按Join Match或使用API​​函数JoinMatch()加入在线游戏

  1. OnStartClient
  2. OnMatchJoined
  3. OnClientConnect
  4. OnClientSceneChanged

第3步:停止主机实例

  1. OnStopClient
  2. OnClientDisconnect

?