据我所知,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
来规避这一点,只要玩家已经连接就可以了。
答案 0 :(得分:3)
你需要等待。由于delays和其他进程,连接需要一些时间。
您添加代码OnConnectedToServer方法并在此处进行检查。 像
void OnConnectedToServer() {
Debug.Log("Is client? " + Network.isClient);
}