在项目运行时,如果电脑突然断网,如何能让用户感知是网络连接故障,unity有自带Api代码如下:
#region 判断是否联网
[DllImport("wininet")]
private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue);
/// <summary>
/// C#判断是否联网
/// </summary>
/// <returns></returns>
public bool IsConnectedInternet()
{
int i = 0;
if (InternetGetConnectedState(out i, 0))
{
return true;
}
else
{
return false;
}
}
#endregion
在Update进行实时监测如果联网异常弹出弹窗告知用户,当网路恢复正常时重新执行相关逻辑
private void Update()
{
#if UNITY_ANDROID
Debug.Log("安卓设备^_^");
#endif
#if UNITY_IPHONE
Debug.Log("苹果设备>_<");
#endif
#if UNITY_STANDALONE
//当网络不可用时
if (!IsConnectedInternet())
{
if (isReconnecting == false)
{
Facade.LogicMng.GetLogic<LogicTips>().ShowTips(string.Format("<color=red>{0}</color>", "网络已断开,请检查网络设置。"));
isReconnecting = true;
Debug.LogError(string.Format("<color=red>{0}</color>", "网络已断开,请检查网络设置"));
}
}
//当网络重新连接时
else
{
networkingEvent();
heartbeatEvent();
}
#endif
}