NetworkBehaviour回调
使用网络管理器时,默认情况下会在客户端连接到服务器时添加玩家。玩家由指定的GameObjects
代表(请参阅Player GameObjects上的Unity文档以了解更多信息)。玩家GameObject
存在于服务器和客户端实例上。
根据游戏的连接状态接收到不同的回调。这些可以在NetworkManagerHUD中设置。
有三种连接状态可用:
• 主机:要在主机模式下设置您的游戏,请选择LAN主机(H)。
• 客户端:要在客户端模式下设置您的游戏,请选择局域网客户端(C),并将服务器IP输入到文本字段或使用API功能StartClient()。请注意,您的服务器IP必须位于同一本地网络中 - 或者,如果要连接到同一台计算机,则可以键入“localhost”。
• 服务器:要在服务器模式下设置您的游戏,请选择仅局域网服务器(S)。
在运行期间,NetworkManagerHUD
的控件也可以在NetworkManagerHUD
组件的Inspector
窗口中找到。单击运行时控件以访问这些。
本节中的回调在NetworkBehaviour
类中定义,仅在玩家GameObject
上调用。要了解有关设置游戏状态的更多信息,请参阅使用网络管理器:游戏状态管理。
一些回调要求您运行多个游戏实例(例如,两个独立实例,或者一个独立实例,另一个在编辑器中)。这些实例可以位于同一台计算机上或不同的计算机上,只要这些计算机通过本地网络连接即可。这对MatchMaker
也同样适用,但通过MatchMaker
,您的机器也可以通过互联网连接。
也可以看看:
• NetworkBehaviour
• 网络管理器回调
服务器上的玩家回调
为了获得这些回调,你需要有两个游戏实例,一个运行在服务器模式下,另一个运行在客户端模式下。这些回调仅在服务器实例上的玩家GameObject
上调用。
首先启动服务器模式实例,然后启动客户端实例以获取回调:
• OnStartServer
• OnRebuildObservers
•(Start()函数被调用)
玩家在客户端回调
为了获得这些回调,你需要有两个游戏实例,一个运行在服务器模式下,另一个运行在客户端模式下。这些回调仅在客户机实例上的玩家GameObject
上调用。
首先启动服务器模式实例,然后启动客户端实例以获取回调:
• OnStartClient
• OnStartLocalPlayer
• OnStartAuthority
• (Start()函数被调用)
主机上的玩家回调
要获得这些回调,您需要在主机模式下运行一个游戏实例,无论是在编辑器中,还是作为独立版本。这些回调仅在玩家GameObject
上调用:
• OnStartServer
• OnStartClient
• OnRebuildObservers
• OnStartAuthority
• OnStartLocalPlayer
• (Start()函数被调用)
• OnSetLocalVisibility
NetworkBehaviour:OnNetworkDestroy
为了获得OnNetworkDestroy
回调,你需要有三个独立的游戏实例,一个在服务器模式下运行,另外两个在客户端模式下运行。
按照以下说明获取OnNetworkDestroy
回调:
1.启动服务器实例
2.启动客户端实例
3.启动第二个客户端实例
4.当两个客户端实例自动连接到服务器实例时,停止一个客户端实例
5.OnNetworkDestroy然后在其余的Client实例上调用,但不在Server实例上调用
🔚