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

时间:2015-01-20 09:57:01

标签: c# unity3d network-programming

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

我有这两行代码:

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

在控制台中他们返回:

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

因为它说“作为客户端运行”,你会认为我是作为客户端运行的。但Network.isClient正在返回false。稍后在我的程序中,我也会调用它,在设置了玩家ID之后,Nework.isClient仍在返回false

那么这应该是怎么回事?目前我正在通过说!Network.isServer来规避这一点,只要玩家已经连接就可以了。

1 个答案:

答案 0 :(得分:3)

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

您添加代码OnConnectedToServer方法并在此处进行检查。 像

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