1

我正在尝试在 Unity 中设置 NetworkServer <-> NetworkClient 我不喜欢使用 NetworkManager,因为它需要设置在线/离线场景。我希望玩家留在同一个场景中并处理 NetworkManager 自己为学习目的所做的大部分工作。

我的问题是我无法确定服务器何时启动。现在 NetworkBehaviour 类有一个虚拟的 void OnStartServer并且在文档中它说 NetworkServer.Listen() '可以'触发它。

有关何时触发此功能的任何信息?Network.InitializeServer() 和 NetworkServer.Listen() 有什么区别是 Network.InitializeServer() 来自 Unity 的旧服务器?

当前代码:

public class MyCustomNetworkManager : NetworkBehaviour
{
    public void StartServer()
    {
        NetworkServer.Listen("127.0.0.1", 1234);
        NetworkServer.RegisterHandler(MsgType.Connect, OnClientConnect);

        //This in relation with OnServerInitialized Message from Unity works but can't connect with this connection.
        //Network.InitializeServer(4, 1234, false);
    }

    public override void OnStartServer()
    {
        //This does not get called what so ever.
    }

    public void OnClientConnect(NetworkMessage message)
    {
        Debug.Log("A player connected");
    }

    void OnServerInitialized()
    {
        //This works but NetworkClient cannot connect with this server.
    }
}
4

0 回答 0