既知の問題点

このページでは、Photonが様々なプラットフォーム上で使用される際の既知の問題点について記載します。 ここで焦点をあてるのは解決が不可能な問題、または回避策のない問題です。 一部の項目ではプラットフォームごとに問題のあるバージョンをリスト化し、他のバージョンを紹介します。

Contents

モバイル・バックグラウンドアプリケーション

モバイルプラットフォームでアプリケーションがバックグラウンドに移行すると、クライアントの接続を保持するためのメインメッセージループが一時停止されます。

以下が、この現象のおもな原因です:

  • プレイヤーが「ホームボタン」を押した。
  • 電話の呼び出しを受信した。
  • 動画広告。
  • アプリケーションでオーバーレイ表示を発生させる、サードパーティーのプラグイン(たとえばFacebookやGoogleなど)。

アプリケーションが、クライアントの切断タイムアウト(デフォルトでは10秒です)よりも長い間停止した場合には、クライアントは切断され、アプリケーションの「一時停止解除」後すぐに再接続する必要があります。 アプリケーションがすでにバックグラウンドでない場合のみ、「タイムアウト切断」コールバックが呼ばれます。

Back To Top

Unity

Socket.SetSocketOptionでのArgumentException

IL2CPPビルドで、"ArgumentException: Value does not fall within the expected range. at System.Net.Sockets.Socket.SetSocketOption"のエラーがでて接続に失敗するUnityの既知の問題がありました。これはWindows 10 SDK 10.0.19041.0がインストールされた際に発生しました。

影響のあったUnityバージョンは 2018.4.23f1、2019.4.0f1、2020.1.0b11、2020.2.0a13です。Unityのマイナーリリースでもより多くの影響がありました。 LTSとTechのすべてのリリース(2018.4以降)では修正されています。

Back To Top

.Net 4.x使用時のUnity 2018.2ソケットのフリーズ

Unity 2018.2はMonoバージョンを使用していました。これはソケット経由通信をフリーズさせてしまうことがありました。メッセージサイズや頻度によって発生していました。

最終的に2019.2で修正され2018.3でもある時点から修正をされています。

Monoと.Net 4.xまたは.Net Standard 2.0を使用する場合は、2018.4.xまたは2019.4.xリリースの使用を推奨します。

Back To Top

RunInBackground

UnityのApplication.runInBackgroundはモバイルプラットフォーム上ではサポートされていません。 その代わりに、アプリケーションがバックグラウンドやフォアグラウンドに移動した場合には、OnApplicationPause メソッドが呼ばれます。

void OnApplicationPause( bool pauseStatus )
{
    if (pauseStatus)
    {
        // app moved to background
    } else
    {
        // app is foreground again
    }
}

Back To Top

Windows Storeの機能

Widows Storeが対象で、接続を試行する場合に例外が生じている際や、または以下のエラーが発生する場合について説明します:

A network capability is required to access this network resource

必要な機能を有効化するには、Unityの「Player Settings」-> 「Publisher Settings」 -> 「Capabilities」-> 「InternetClient」から設定をおこないます。

Required Capability for Windows Store Apps
Photon PUN: Windows Storeアプリケーションに必要な機能。Photon Voiceを使用している場合には、'Microphone'機能も必要です。

Back To Top

UWPエクスポート

UnityアプリケーションをUWPにエクスポートする場合、スクリプトのバックエンドとして.NETまたはIL2CPPを使用できます。アプリケーションをUnityから正常にエクスポートするため、Photon PUNまたはPhoton Realtime Unity SDKは正しいライブラリを選択するようすでに設定されています。もしエクスポート中に何らかのエラーが生じる場合には、該当のスクリプトバックエンドに対して正しいライブラリを使用しているか、確認してください。

Back To Top

IOS IPv6

Unity 5.xはiOS上のIPv6を全般的にサポートしていますが、一部のバージョン(たとえば5.4)ではこの機能が壊れています。 サポートされるバージョンの一部は以下です:4.7.2, 5.1.5, 5.2.5, 5.3.4p4, 5.4.0p1およびそれ以降( Unityのブログ記事を参照してください)。

Back To Top

アセットストアパッケージのアップデート

Unityの一部のバージョンでは、アセットがまったくアップデートされないか、正常にアップデートされない場合があります。 PUN向けの変更履歴テキストファイル、またはPhotonServerSettingsを参照し、常にPhotonパッケージのバージョンを確認してください。 古いパッケージではローカルのオフラインキャッシュで処理が進まず、アップデートがまったく発生しない、またはアップデートが正常におこなわれない場合がある、という既知の問題が報告されています。この問題を修正するには、まずPhotonアセットパッケージをローカルで削除し、再度ダウンロード/インポートを試行してください。 ローカルのUnityアセットストアキャッシュフォルダへのパスはこちらに記載されています。

To Document Top