网络管理器回调
本节介绍根据您对游戏主机服务器的连接类型收到的网络管理器回调。
本地连接回调
根据您的游戏状态收到不同的回调。有三个状态可用。这些可以在网络管理器HUD中设置。
• 主机:要在主机模式下设置您的游戏,请选择LAN主机(H)或使用API功能StartHost()。
• 客户端:要在客户端模式下设置您的游戏,请选择局域网客户端(C)并将服务器IP输入到文本字段中,或使用API函数StartClient()。请注意,您的服务器IP必须位于同一本地网络中 - 或者,如果要连接到同一台计算机,则可以键入“localhost”。
• 服务器:要在服务器模式下设置您的游戏,请选择局域网服务器(S)或使用API功能StartServer()。
在运行期间,网络管理器HUD的控件也可以在网络管理器HUD组件的Inspector
窗口中找到。单击运行时控件以访问这些。
此页面详细介绍了每种模式下收到的回调。要了解有关设置游戏状态的更多信息,请参阅使用网络管理器:游戏状态管理。
某些网络管理器回调需要您运行多个游戏实例(例如,两个独立实例,或者一个独立实例,另一个在编辑器中)。这些实例可以位于同一台计算机上或不同的计算机上,只要这些计算机通过本地网络连接即可。
主机回调
为了获得这些回调,你需要有两个游戏实例,一个以主机模式运行,另一个以客户机模式运行。这些回调仅在以主机模式运行的实例上调用。
按照以下步骤获取回调。要停止实例,请按停止或使用API函数StopHost()
。
第1步:启动主机实例
• (Start()函数被调用)
• OnStartHost
• OnStartServer
• OnServerConnect
• OnStartClient
• OnClientConnect
• OnServerSceneChanged
• OnServerReady
• OnServerAddPlayer
• OnClientSceneChanged
第2步:启动客户端实例
• OnServerConnect
• OnServerReady
• OnServerAddPlayer
第3步:停止客户端实例
• OnServerDisconnect
第4步:停止主机实例
• OnStopHost
• OnStopServer
• OnStopClient
客户端回调
为了获得这些回调,你需要有两个游戏实例,一个运行在服务器模式下,另一个运行在客户端模式下。这些回调仅在客户端模式下运行的实例上调用。
首先启动服务器模式实例,然后按照以下步骤获取回调。要停止实例,请按停止或使用API函数StopHost()
。
第1步:启动客户端实例
• (Start()函数被调用)
• OnStartClient
• OnClientConnect
• OnClientSceneChanged
第2步:停止服务器实例
• OnStopClient
• OnClientDisconnect
服务器回调
为了获得这些回调,你需要有两个游戏实例,一个运行在服务器模式下,另一个运行在客户端模式下。这些回调仅在运行于服务器模式的实例上调用。
按照以下步骤获取回调。要停止实例,请按停止或使用API函数StopHost()
。
第1步:启动服务器实例
• (Start()函数被调用)
• OnStartServer
• OnServerSceneChanged
第2步:启动客户端实例
• OnServerConnect
• OnServerReady
• OnServerAddPlayer
第3步:停止客户端实例
• OnServerDisconnect
第4步:停止服务器实例
• OnStopServer
互联网连接回调
与主机服务器的Internet连接通过Unity MatchMaker
系统进行,该系统通过中继服务器连接您。
根据您的游戏状态收到不同的回调。MatchMaker
有两种状态:主机和客户端。要使用MatchMaker
,请运行游戏并从NetworkManagerHUD菜单中选择启用匹配器(M):
这将打开MatchMaker菜单:
• 主持人:要在主持人模式下设置您的游戏,请选择启用匹配器(M) > 创建互联网匹配或使用API功能CreateMatch()
• 客户端:要在客户端模式下设置您的游戏,请选择启用匹配器(M) > 查找Internet匹配 > 加入Internet匹配或使用API函数JoinMatch()
此页面详细介绍了每种模式下收到的回调。要了解有关设置游戏状态的更多信息,请参阅使用网络管理器:游戏状态管理。
某些网络管理器回调需要您运行多个游戏实例(例如,两个独立实例,或者一个独立实例,另一个在编辑器中)。这些实例可以位于同一台计算机上,也可以位于不同的计算机上,也可以位于同一网络或不同的网络上,但所有计算机都必须具有Internet连接。MatchMaker
允许您通过互联网连接游戏的实例,因此具有游戏实例的机器可能位于世界的不同地区。
主机MatchMaker回调
为了获得这些回调,你需要有两个游戏实例,一个以主机模式运行,另一个以客户机模式运行。这些回调仅在以主机模式运行的实例上调用。
按照以下步骤获取回调。要停止实例,请按停止或使用API函数StopHost()
。
第1步:启动主机实例
• (Start()函数被调用)
• OnStartHost
• OnStartServer
• OnServerConnect
• OnStartClient
• OnMatchCreate
• OnClientConnect
• OnServerSceneChanged
• OnServerReady
• OnServerAddPlayer
• OnClientSceneChanged
步骤2:启动客户端实例并选择加入Internet匹配或使用API函数JoinMatch()
• OnServerConnect
• OnServerReady
• OnServerAddPlayer
第3步:停止客户端实例
• OnServerDisconnect
客户端MatchMaker回调
要获得这些回调,需要运行两个游戏实例,一个在主机模式下,另一个在客户端模式下运行。这些回调仅在客户端模式下运行的实例上调用。
首先启动主机模式实例,然后启动客户端实例。按照以下步骤获取回调。要停止实例,请按停止或使用API函数StopHost()
。
步骤1:在客户端实例上,按查找网络匹配或使用API函数ListMatches()
查找在线游戏列表
• (Start()函数被调用)
• OnMatchList
步骤2:在客户端实例上,按Join Match或使用API函数JoinMatch()
加入在线游戏
• OnStartClient
• OnMatchJoined
• OnClientConnect
• OnClientSceneChanged
第3步:停止主机实例
• OnStopClient
• OnClientDisconnect
?