1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Unity(C#)】ネットワーク接続の状態に応じて処理を行う

Last updated at Posted at 2021-06-04

はじめに

OculusQuestでアプリがオフラインかオンラインかに応じた処理が必要になったので調べました。

Application.internetReachability

結論、Application.internetReachabilityを使えばOKです。
状態に応じてEnumを返します。

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

【参考リンク】:Unityで作成したアプリにおいて、ネットワーク接続を確認する場合に使う「Application.internetReachability」!

バージョン情報

UniRx 7.1.0
Unity 2019.4.8f1

コード

ネットーワークの状態に応じてテキストを変更する簡易サンプルです。
ReactivePropertyで状態が変わった時だけ処理するようにしています。

using UniRx;
using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// インターネット接続をチェックするサンプル
/// </summary>
public class NetworkConditionChecker : MonoBehaviour
{
    [SerializeField] private Text networkConditionText;

    private readonly ReactiveProperty<NetworkReachability> _networkReachReactiveProperty = new ReactiveProperty<NetworkReachability>();

    private void Start()
    {
        _networkReachReactiveProperty
            .SkipLatestValueOnSubscribe()
            .Subscribe(condition =>
            {
                if (condition == NetworkReachability.NotReachable)
                {
                    networkConditionText.text = "接続無し";
                }
                else
                {
                    networkConditionText.text = "接続有り";
                }
            })
            .AddTo(this);
    }

    private void Update()
    {
        _networkReachReactiveProperty.Value = Application.internetReachability;
    }
}

デモ

画面下の接続の状態に応じてテキストが変更されました。成功です。
エディター上でも実機上でも変わりなく動作してくれてありがたいです。

NetworkCondition.gif

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?