はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】ネットに繋がっている状態かを簡単に調べる

はじめに

今回はネットに繋がっている状態か調べる記事になります!

ネットに繋がっているかはApplication.internetReachabilityというインターネットにアクセスしているかが分かるプロパティがUnityEngineにはあります。

これを使うことで簡単に実装できるので、早速実際の例を見てみましょう!

実際の使い方

using UnityEngine;

public class NetworkTest : MonoBehaviour
{
    void Start()
    {
        CheckNetworkState();
    }

    private void CheckNetworkState()
    {
        var networkState = Application.internetReachability;

        //ネットワークに繋がっているか調べる
        if (networkState == NetworkReachability.NotReachable)
        {
            //インターネットに接続していない
            Debug.Log("インターネットに接続していません");
        }
        else if (networkState == NetworkReachability.ReachableViaCarrierDataNetwork)
        {
            //キャリアネットワークで接続している
            Debug.Log("キャリアネットワークを用いてインターネットに接続しています");
        }
        else if (networkState == NetworkReachability.ReachableViaLocalAreaNetwork)
        {
            //Wi-Fiでインターネットに接続している
            Debug.Log("Wi-Fiを用いてインターネットに接続しています");
        }
    }
}

Application.internetReachabilityが持ちうる値はNetworkReachability型のEnumで、3つの種類があります

名前 意味
NotReachable インターネットに接続していない
ReachableViaCarrierDataNetwork キャリアネットワークで接続している
ReachableViaLocalAreaNetwork Wi-Fiでインターネットに接続している

ネットに繋がっているかだけでなく、Wi-Fiかどうかも判別できるみたいです。

ダウンロードサイズの大きさによって、警告を出すなどもできるようになっているようですね。

f:id:hanaaaaaachiru:20190428171033p:plain

さいごに

こちらを上手く利用して、ぜひアプリやゲームをネットにつなげちゃいましょう!