既知の問題点

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

Contents

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

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

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

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

PUNには、クライアントをサーバーに接続し続けるためのバックグラウンドのフォールバックスレッドがあります。 これはiOS上では作動しません(Apple ディベロッパーページのBackground Executionを参照してください)。 接続を保持するため、バックグラウンドスレッドは限定された時間、サーバーのみにACKを送信します。 デフォルトのバックグラウンドスレッドタイムアウトは60秒間です。この時間はPhotonNetwork.BackgroundTimeoutを使用して変更できます。 バックグランドがタイムアウトすると、PUNはクライアントを切断します。 バックグラウンドへの移行前にクライアントがルームに参加した場合に、アプリケーションがフォアグラウンドになった直後にPUNは(必要に応じて)同じルームへの再接続と再参加を試行します。

Back To Top

PhotonAnimatorView And とTrigger

Animator ControllerTriggerパラメータを使用していて「PhotonAnimatorView」を使って同期をおこないたい場合には、問題が発生しないよう処理方法を検討することが重要です。

  • Triggerの性質上、Triggerはアニメーションイベントが開始した際にのみ有効化され、次のUpdate()の直前に非有効化されます。
  • GameObject上のコンポーネントは、宣言された順に実行されます。
  • 実行順序の設定を編集すると、GameObjectのコンポーネント上の実行順序に影響を及ぼします。 「PhotonAnimatorView」コンポーネントは、Triggerを起動するコード後に実行する必要があります。 このため、これはスタックの最下部に設定したほうが安全です。 あるいは、少なくともAnimator.SetTrigger(...)を使用してTriggerを起動するコンポーネントの 下に設定してください。

「PhotonAnimatorView」Inspectorは、様々なパラメータの最新値を表示します。 trueとなるべき時にTriggerが的確にtrueになっているかを、パブリッシュ前でもチェックすることができます。 trueになっていない場合には、この特定のTriggerがネットワーク上で同期されていない可能性があります。

Back To Top

Unity

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は正しいライブラリを選択するようすでに設定されています。もしエクスポート中に何らかのエラーが生じる場合には、該当のスクリプトバックエンドに対して正しいライブラリを使用しているか、確認してください。

スクリプトバックエンドとして.NETを使用している場合には、Photon3Unity3D.dllが/Assets/Plugins/Metro/ディレクトリから使用されている点を確認してください。 スクリプトバックエンドとして IL2CPPを使用している場合には、Photon3Unity3D.dllが/Assets/Plugins/ディレクトリから使用されている点を確認してください。

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のブログ記事を参照してください)。

ドキュメントのトップへ戻る