273  
查询码:00000915
unity运行时如何检测设备联网状态(PC端)
作者: 李永强 于 2020年08月20日 发布在分类 / BIM组 / BIM视图 下,并于 2020年08月20日 编辑
unity Windows 网络状态监测

在项目运行时,如果电脑突然断网,如何能让用户感知是网络连接故障,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
    }



 推荐知识

 历史版本

修改日期 修改人 备注
2020-08-20 15:18:29[当前版本] 李永强 创建版本

知识分享平台 -V 4.8.7 -wcp