简单说说关于unity在PC检查是否联网的几个坑和最终解决方案
1.使用windowsAPI的InternetGetConnectedState
1·你的电脑插了网线,但是无法上网冲浪(也就是黄色感叹号时)。它返回的结果是InternetGetConnectedState(ref dwFlag, 0)(后面简称IGC)等于true,且为代理服务器上网。
2·你的电脑连接了一个无法冲浪的wifi,IGC结果等于true。
3·官方不推荐使用这种方法,因为这种方法查询状态有延迟,且对网卡伤害比较大。
总结:只测了上面两种无法联网情况,只有在拔掉网线的时候,IGC返回的结果才为false。
2.使用unity自带的PING
这个方法需要关闭网络属性中的IPV6,才能正常使用。安卓的没测过,网上说是可以查询到网络状态的。
3.使用unity的Networ.TestConnection
这个方法现在官方已经弃用了,也没找到对应可以代替的。
4.使用unity自带的unitywebrequest
最后,为了方便,迫于无奈选择了使用unitywebrequest。这个方法放在协程中使用。放在普通方法中是无效的。并且要将超时时间设置短一些,不然当你没有网络的时候,它返回结果会稍慢。
今天就分享这些小知识,如有发现不足。欢迎补充 。◕‿◕。
更多推荐
简单说说关于unity在PC检查是否联网的几个坑和最终解决方案
发布评论