Unity3D网络ReadMessage

时间:2017-03-28 13:51:47

标签: unity3d-unet

如果客户端尝试连接到缺席服务器,如何检查错误?

我的代码!

//Server 
void Start () { 
NetworkServer.Listen(13044);
}

//Client
NetworkClient thisclient = new NetworkClient ();
thisclient.Connect ("127.0.0.1", 13044);  
thisclient.RegisterHandler(MsgType.Error, errortest);
thisclient.RegisterHandler (MsgType.Disconnect, dctest);  

void errortest(NetworkMessage netMsg){
var errorMsg = netMsg.ReadMessage<ErrorMessage>();  
Debug.Log("Error:" + errorMsg.errorCode);}  

void dctest(NetworkMessage netMsg){  
//if I run the client while the server is not present, its goes here instead of errortest 
}

1 个答案:

答案 0 :(得分:0)

您正在使用带有ErrorMessage的ReadMessage,但ErrorMessage仅在错误消息(OnError)中有效。

您的dctest功能在断开时触发,而不是在出错时触发。

Disconnect是一种特殊的MsgType(请参阅https://docs.unity3d.com/ScriptReference/Networking.MsgType.html)(如果我记得的话),它不包含任何数据。

所以回答你的问题:你已经有了结果。一切都在netMsg。

https://docs.unity3d.com/Manual/UNetMessages.html

当您使用魔杖发送/读取自定义数据时,ReadMessage函数主要用于您自己的NetworkMessages。