为什么我没有被注册为客户?

Why I'm not being registered as a client?

据我所知,当我连接到服务器时,Network.isClient 应该 return true,特别是在 Unity MasterServer 上。但事实并非如此。

我有这两行代码:

Network.Connect(hostData);
Debug.Log("Is client? " + Network.isClient);

他们在控制台中 return:

//NetworkManager: Running as client. No player ID set yet.
//Is client? False
//NetworkManager: Connected to <my IP:PORT>
//NetworkManager: Set player ID to 1

因为上面写着"Running as client"你会认为我是运行的客户。但是 Network.isClient 是 returning false。稍后在我的程序中我也调用它,在设置玩家 ID 但 Nework.isClient 仍然 returning false.

那么这应该如何运作?目前我通过说 !Network.isServer 来规避这个,只要播放器连接就应该没问题。

您需要等待。由于 delays 和其他进程,连接需要一些时间。

您添加代码 OnConnectedToServer 方法并在此处检查。 喜欢

void OnConnectedToServer() {
   Debug.Log("Is client? " + Network.isClient);
}