MRが楽しい

MRやVRについて学習したことを書き残す

UnityでNetworkReachabilityを使ってネットワークの疎通確認をする

本日は Unity の小ネタ枠です。
Unity で NetworkReachability を使ってネットワークの疎通確認をする方法を記事にします。

NetworkReachability

UnityEngine.Application.internetReachability でネットワークが外部からアクセス可能な状態かチェックできます。
以下の3通りの結果が返ります。

NotReachable ネットワークが使えない
ReachableViaCarrierDataNetwork キャリアネットワークでアクセス可能
ReachableViaLocalAreaNetwork WiFiでアクセス可能

docs.unity3d.com

サンプルスクリプト

以下のサンプルスクリプトを作成して動作を確認してみました。
・NetworkReachabilityTest.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NetworkReachabilityTest : MonoBehaviour
{
    void Start()
    {
        // ネットワークが使えない場合
        if (Application.internetReachability == NetworkReachability.NotReachable)
        {
            Debug.Log("Not Reachable.");
        }
        // キャリアネットワークでアクセス可能な場合
        else if (Application.internetReachability == NetworkReachability.ReachableViaCarrierDataNetwork)
        {
            Debug.Log("Reachable via carrier data network.");
        }
        // 	WiFi でアクセス可能な場合
        else if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)
        {
            Debug.Log("Reachable via Local Area Network.");
        }
    }
}

シーンを再生するとネットワークの接続状況に応じてログメッセージが変化するのを確認できます。