既知の問題点
このページでは、Photonが様々なプラットフォーム上で使用される際の既知の問題点について記載します。 ここで焦点をあてるのは解決が不可能な問題、または回避策のない問題です。 一部の項目ではプラットフォームごとに問題のあるバージョンをリスト化し、他のバージョンを紹介します。
目次
モバイル・バックグラウンドアプリケーション
モバイルプラットフォームでアプリケーションがバックグラウンドに移行すると、クライアントの接続を保持するためのメインメッセージループが一時停止されます。
以下が、この現象のおもな原因です:
- プレイヤーが「ホームボタン」を押した。
- 電話の呼び出しを受信した。
- 動画広告。
- アプリケーションでオーバーレイ表示を発生させる、サードパーティーのプラグイン(たとえばFacebookやGoogleなど)。
アプリケーションが、クライアントの切断タイムアウト(デフォルトでは10秒です)よりも長い間停止した場合には、クライアントは切断され、アプリケーションの「一時停止解除」後すぐに再接続する必要があります。 アプリケーションがすでにバックグラウンドでない場合のみ、「タイムアウト切断」コールバックが呼ばれます。
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のマイナーリリースでもより多くの影響がありました。 修正済みのバージョンは以下のとおりです: 2020.1.1f1、2019.4.5f1およびそれ以降、 2018.4.27もおそらく修正済みです2018.4.23での回避策はこちらに記載されています。
.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リリースの使用を推奨します。
RunInBackground
UnityのApplication.runInBackground
はモバイルプラットフォーム上ではサポートされていません。
その代わりに、アプリケーションがバックグラウンドやフォアグラウンドに移動した場合には、OnApplicationPause
メソッドが呼ばれます。
void OnApplicationPause( bool pauseStatus )
{
if (pauseStatus)
{
// app moved to background
} else
{
// app is foreground again
}
}
Windows Storeの機能
Widows Storeが対象で、接続を試行する場合に例外が生じている際や、または以下のエラーが発生する場合について説明します:
A network capability is required to access this network resource
必要な機能を有効化するには、Unityの「Player Settings」-> 「Publisher Settings」 -> 「Capabilities」-> 「InternetClient」から設定をおこないます。
UWPエクスポート
UnityアプリケーションをUWPにエクスポートする場合、スクリプトのバックエンドとして.NETまたはIL2CPPを使用できます。アプリケーションをUnityから正常にエクスポートするため、Photon PUNまたはPhoton Realtime Unity SDKは正しいライブラリを選択するようすでに設定されています。もしエクスポート中に何らかのエラーが生じる場合には、該当のスクリプトバックエンドに対して正しいライブラリを使用しているか、確認してください。
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のブログ記事を参照してください)。
アセットストアパッケージのアップデート
Unityの一部のバージョンでは、アセットがまったくアップデートされないか、正常にアップデートされない場合があります。 PUN向けの変更履歴テキストファイル、またはPhotonServerSettingsを参照し、常にPhotonパッケージのバージョンを確認してください。 古いパッケージではローカルのオフラインキャッシュで処理が進まず、アップデートがまったく発生しない、またはアップデートが正常におこなわれない場合がある、という既知の問題が報告されています。この問題を修正するには、まずPhotonアセットパッケージをローカルで削除し、再度ダウンロード/インポートを試行してください。 ローカルのUnityアセットストアキャッシュフォルダへのパスはこちらに記載されています。