【发布时间】:2019-04-29 09:58:26
【问题描述】:
我实际上使用 Unet for Unity,当客户端尝试使用错误 IP 加入时,我遇到超时错误。
我想避免这个超时错误。所以,我试图覆盖 NetworkManager 的“OnDisconnectClient”。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class CustomNetworkManager : NetworkManager {
public override void OnClientDisconnect(NetworkConnection conn)
{
Debug.Log("TimeOutError");
}
}
它可以工作,但是当客户端故意退出服务器时也会调用此函数。 所以我尝试了这个:
public class CustomNetworkManager : NetworkManager {
public override void OnClientDisconnect(NetworkConnection conn)
{
try
{
base.OnClientDisconnect(conn);
}
catch(Exception e)
{
Debug.Log(e.ToString());
}
}
}
但是错误没有被捕获并且仍然在控制台中弹出。我也试过不带 Exception 参数的 catch 但还是一样。
感谢您的帮助。
PS:我在 Unity 2018.2.15f1 上工作
【问题讨论】:
-
请将代码添加为代码,而不是图像。
-
刚刚编辑,现在是代码。
-
在
OnClientDisconnect内部使用try - catch并没有多大帮助,因为这不是引发错误的方法。超时的不是断开连接,而是连接。也许this 有帮助? -
@derHugo 感谢您的回答。我在你的链接上尝试了答案,但我没有得到更多。我也不明白,如果
OnClientDisconnect没有抛出错误,为什么覆盖它会删除错误?
标签: c# unity3d unity3d-unet