결정을 내릴 수 있도록 인터넷을 사용할 수 있는지 또는 내 게임에 없는지 확인해야합니다. 인터넷이 작동하고 인터넷이 작동하지 않을 때 두 가지 유형의 결정이 있습니다. 나는 방법을 발견했다. 그러나 그것은 CPU를위한 오버 헤드를 만든다. 현재이 유형의 솔루션을 사용하고 있습니다. 인터넷을 사용할 수 있는지 확인하는 더 좋은 방법이 있습니까?확인하는 방법 Unity3d에서 오버 헤드를 발생시키지 않고 인터넷 사용 가능
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class DeviceConnected : MonoBehaviour
{
private const bool allowCarrierDataNetwork = false;
private const string pingAddress = "8.8.8.8"; // Google Public DNS server
private const float waitingTime = 2.0f;
public Text txtInternetConnectStatus;
private Ping ping;
private float pingStartTime;
private bool isInternetAvailable = false;
public void Start()
{
InvokeRepeating("OnStartCheck", 0f,3.0f);
}
public void OnStartCheck()
{
bool internetPossiblyAvailable;
switch (Application.internetReachability)
{
case NetworkReachability.ReachableViaLocalAreaNetwork:
internetPossiblyAvailable = true;
break;
case NetworkReachability.ReachableViaCarrierDataNetwork:
internetPossiblyAvailable = allowCarrierDataNetwork;
break;
default:
internetPossiblyAvailable = false;
break;
}
if (!internetPossiblyAvailable)
{
InternetIsNotAvailable();
return;
}
ping = new Ping(pingAddress);
pingStartTime = Time.time;
}
public void Update()
{
if (ping != null)
{
Debug.Log("Hi");
bool stopCheck = true;
if (ping.isDone)
{
if (ping.time >= 0)
InternetAvailable();
else
InternetIsNotAvailable();
}
else if (Time.time - pingStartTime < waitingTime)
stopCheck = false;
else
InternetIsNotAvailable();
if (stopCheck)
ping = null;
}
}
private void InternetIsNotAvailable()
{
if (isInternetAvailable == false)
{
Debug.Log("No Internet :(");
txtInternetConnectStatus.text = "No Internet :(";
isInternetAvailable = true;
}
}
private void InternetAvailable()
{
if (isInternetAvailable==true)
{
Debug.Log("Internet is available! ;)");
txtInternetConnectStatus.text = "Internet is available! ;)";
isInternetAvailable = false;
}
}
public void OnClickShowMediationSuite()
{
ShowAds.instance.ShowMediationSuite();
}
}
오버 헤드가 없습니까? 오버 헤드가 발생하지 않는 유일한 방법은 아무 것도하지 않는 것입니다. 당신이 의미하는 바를 더 분명하게 설명해야합니다. –