我正在尝试在 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.
}
}