欢迎加入Unity业内qq交流群:956187480



一.判断当前网络类型 

//
// 摘要:
// Describes network reachability options.描述网络可达性选项。
public enum NetworkReachability
{
//
// 摘要:
// Network is not reachable.网络不可用。
NotReachable = 0,
//
// 摘要:
// Network is reachable via carrier data network.网络可通过运营商数据网接入。
ReachableViaCarrierDataNetwork = 1,
//
// 摘要:
// Network is reachable via WiFi or cable.网络可通过WiFi或网线连接。
ReachableViaLocalAreaNetwork = 2
}

二.判断当前网络连接状态

//判断当前是否联网
private void PingNetAddress()
{
try
{
System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping();
PingReply pr = ping.Send("www.baidu.com", 3000);
if (pr.Status == IPStatus.Success)
{
Debug.Log("网络连接信号正常") ;
}
else
{
Debug.Log("网络连接无信号");
}
}
catch (Exception e)
{
Debug.Log("网络连接信号异常"+e.Message);
}
}

三.判断在当前网络环境下网络是否有信号(PC端测试要要关闭ipv6环境支持)

// Use this for initialization
void Start () {
//当网络不可用时
if (Application.internetReachability == NetworkReachability.NotReachable)
{
Debug.Log("无网络——环境");
}
//当用户使用WiFi时
if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)
{
Debug.Log("wifi/网线——环境");
}
//当用户使用移动网络时
if (Application.internetReachability == NetworkReachability.ReachableViaCarrierDataNetwork)
{
Debug.Log("运营商数据网络——环境");
}
PingNetAddress();
}
//判断当前是否联网
private void PingNetAddress()
{
try
{
System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping();
PingReply pr = ping.Send("www.baidu.com", 3000);
if (pr.Status == IPStatus.Success)
{
Debug.Log("网络连接信号正常") ;
}
else
{
Debug.Log("网络连接无信号");
}
}
catch (Exception e)
{
Debug.Log("网络连接信号异常"+e.Message);
}
}

四.测试

Unity判断本机是否联网且是否有网络信号(是否联网、是否wifi)_.net

Unity判断本机是否联网且是否有网络信号(是否联网、是否wifi)_运营商_02


欢迎加入Unity业内qq交流群:956187480