• NetworkBehaviour回调
    • 服务器上的玩家回调
    • 玩家在客户端回调
    • 主机上的玩家回调
    • NetworkBehaviour:OnNetworkDestroy

    NetworkBehaviour回调

    使用网络管理器时,默认情况下会在客户端连接到服务器时添加玩家。玩家由指定的GameObjects代表(请参阅Player GameObjects上的Unity文档以了解更多信息)。玩家GameObject存在于服务器和客户端实例上。

    根据游戏的连接状态接收到不同的回调。这些可以在NetworkManagerHUD中设置。

     6.211 NetworkBehaviour回调  - 图1

    有三种连接状态可用:

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

    在运行期间,NetworkManagerHUD的控件也可以在NetworkManagerHUD组件的Inspector窗口中找到。单击运行时控件以访问这些。

     6.211 NetworkBehaviour回调  - 图2

    本节中的回调在NetworkBehaviour类中定义,仅在玩家GameObject上调用。要了解有关设置游戏状态的更多信息,请参阅使用网络管理器:游戏状态管理。

    一些回调要求您运行多个游戏实例(例如,两个独立实例,或者一个独立实例,另一个在编辑器中)。这些实例可以位于同一台计算机上或不同的计算机上,只要这些计算机通过本地网络连接即可。这对MatchMaker也同样适用,但通过MatchMaker,您的机器也可以通过互联网连接。

    也可以看看:

    1. NetworkBehaviour
    2. 网络管理器回调

    服务器上的玩家回调

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

    首先启动服务器模式实例,然后启动客户端实例以获取回调:

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

    玩家在客户端回调

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

    首先启动服务器模式实例,然后启动客户端实例以获取回调:

    1. OnStartClient
    2. OnStartLocalPlayer
    3. OnStartAuthority
    4. Start()函数被调用)

    主机上的玩家回调

    要获得这些回调,您需要在主机模式下运行一个游戏实例,无论是在编辑器中,还是作为独立版本。这些回调仅在玩家GameObject上调用:

    1. OnStartServer
    2. OnStartClient
    3. OnRebuildObservers
    4. OnStartAuthority
    5. OnStartLocalPlayer
    6. Start()函数被调用)
    7. OnSetLocalVisibility

    NetworkBehaviour:OnNetworkDestroy

    为了获得OnNetworkDestroy回调,你需要有三个独立的游戏实例,一个在服务器模式下运行,另外两个在客户端模式下运行。

    按照以下说明获取OnNetworkDestroy回调:

    1. 1.启动服务器实例
    2. 2.启动客户端实例
    3. 3.启动第二个客户端实例
    4. 4.当两个客户端实例自动连接到服务器实例时,停止一个客户端实例
    5. 5.OnNetworkDestroy然后在其余的Client实例上调用,但不在Server实例上调用

    ?