This document is about: PUN 2
SWITCH TO

PUN Classic (v1)、PUN 2、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

初期設定と接続

Photon Unity Networking (PUN)は簡単にセットアップできます。
新しいプロジェクトにPUNをインポートすると、PUNウィザードのポップアップが開きます。また、メニューにも「Window」「Photon Unity Networking」と表示されるようになります。

PUN Wizard
PUN Wizard

Photon Cloudの新規(無償)アカウントの登録は、メールアドレスを入力するか、ダッシュボードの既存のAppIdDashboardをコピーアンドペーストするだけでおこなえます。

自分でPhotonサーバーをホスティングする場合は、"skip"をクリックして 下記のようにPhotonServerSettingsを編集します。

接続するには、コード内でPhotonNetwork.ConnectUsingSettings() を呼び出すだけです。

PhotonServer設定

ウィザードがプロジェクトへコンフィグレーションを格納するためPhotonServerSettingsファイルを追加します。このファイルは、基本的にはConnectUsingSettingsに使用されます。PhotonCloudまたは独自のホスティングサーバーへの接続とその他のよくある変更を設定できます。

PhotonServerSettings in Inspector
インスペクターのPhotonServerSettings

AppId、Photon Cloud Region、Game Versionやその他の設定ができます。デフォルト設定でほとんどの場合は問題ありません。

設定値

AppId Realtime、Chat および Voice

AppIdはPhoton Cloudで各タイトルを識別するため使用されています。PUNはRealtime AppIDを使って接続します。
Photon ChatとPhoton Voiceでも同様で、機能を使うためにはそれぞれのAppIdが必要です。

Appバージョン

PUNでは、Appバージョンはゲームバージョンの一部です。異なるゲームバージョンの値を持つクライアントは隔離されます。Game Version の値が異なるクライアントは分けられます。PUNはこの値にPunVersionの文字列を追加し、異なる PUNバージョン間の潜在的な非互換性を軽減します。

ネームサーバーの使用

Photon Server v4インスタンスに接続する際、クライアントはネームサーバではなくマスターサーバに直接接続します。自分でPhotonをホストする場合のみ、このチェックを外してください。詳細はこちらを参照してください。

Dev Region

Dev Region in PhotonServerSettings
PhotonServerSettingsの"Dev Region"

PUN v2.17から、PhotonNetwork.ConnectUsingSettings()を使用して接続した場合にのみ、Unity Editorと「Development」ビルドで「Dev Region」が使用されるようになりました。
この値を削除するだけで、Unity Editorと「Development Build」で「Dev Region」を無効にすることができます。
詳細は こちらです。

リージョンの固定

クラウドに接続すると、PUNがベストリージョンを選択します。特定のリージョンに接続を希望する場合は、リージョンコードを入力すると、Best Region Selectionがオフになります。

サーバー

このオプションは、自身のPhotonサーバーをホストする場合に主に関係します。そのためには、Photon Server SDKを入手してください。

入力したアドレスにクライアントが到達していることを確認してください。
クライアントが使用しているアドレスはパブリックかスタティックIP、ホストネームなど様々な可能性があります。

iOS向けゲーム開発をする場合 "PUN and IPv6" と "how to setup Photon Server for IPv6"を参照してください。

設定がきちんとされていれば、プログラム内でPhotonNetwork.ConnectUsingSettings()を呼び出せます。

ポートとプロトコル

Photonは、一度のセッションの間に複数のサーバーの使用を可能にするため構築されました。ここで入力されたポートは最初に接続するサーバーの一つで、マスターサーバーかネームサーバーです。ポートはまた、選択したプロトコルにも影響されます。

Photon Cloudに接続すると、値は0になります。Photonが使用するstandard portsを検索します。

プロトコルのデフォルトは(信頼性のある)UDPですが、PhotonはTCPおよびWebSocketをサポートしています。PUNのクライアントは自動的にWebGLエクスポートにおいてSecure WebSocketsを使用することになります。

UDPの使用をお勧めします。

ロビー統計の有効化

ロビー統計をサーバーから取得するにはここにチェックを入れます。
詳細は"App And Lobby Stats"のページを参照してください。

ネットワークロギング

下層レベルのPhotonプログラムのロギングを制御します。必要でない限り、Error設定に従ってください。

サポートロガーの有効化

接続中、マッチメイキング中もしくはルームの中でに起きたことをトラッキングするのに非常に有効です。ここにチェックが入っていると、スクリプトがコールバックに登録され重要な情報がログされ、ゲームのデバッグに役立ちます。

バックグラウンドでの実行

Unity設定を同じ名前でセッティングします。
詳細はこちら

RPCのリスト

"Remote Procedure Calls"でルームの中の他のクライアントでのメソッド呼び出しができるようになります。
PUNにはPhotonServerSettingsのメソッドのリストがあり、各名称のインデックスをRPCを呼び出す際の略称として使用できます。

Remote Procedure Callsをご確認ください。

セルフホスト型Photonサーバーの設定

PhotonNetwork.ConnectUsingSettingsメソッドを使用して接続し、接続前にPhotonServerSettingsを調整することを推奨します。この調整は、コンパイル時にUnity Editorで行うか、実行時にコードで行います(PhotonNetwork.PhotonServerSettings.AppSettingsを変更)。
また、Photon Server v5.0の使用を推奨します。

Photon Server v5

NameServer.jsonで設定されているFixed Regionをクリアまたは設定します。サーバ には、あなたのPhoton ServerのIPまたはホスト名を設定します。クライアントが到達できるネットワーク上にある必要があります。クライアントが同一マシン上のスタンドアロンで構築されている場合は、"localhost "または127.0.0.1を使用しても問題ありません。ポート番号を0に設定しておくと、クライアントはプロトコルごとにデフォルトのポート番号を選択します。それ以外の場合は、ポートを入力します。例えば、デフォルトのUDPは5058、デフォルトのWSSは19093などです(または、PhotonServer.configでNameServerアプリケーションのカスタムポートを変更した場合は、そのポート)。プロトコルやサーバごとのデフォルトポートのリストはこちら

OnPremises Settings Example
OnPremises Settings Example

Photon Server (OnPremises)を使用する際には、Photon Cloudといくつかの違いがあります。
それらはこちらに記載されています。

Photon Server v4

Photon Server v4のSDKにはこのサービスが含まれていないので、"Use Name Server "のチェックを外します。固定リージョンを解除します。サーバ にはPhoton ServerのIPまたはホスト名を設定します。クライアントが到達可能なネットワーク上にある必要があります。クライアントが同一マシン上でスタンドアロンに構築されている場合は、"localhost "または127.0.0.1を使用しても問題ありません。ポートを入力します:デフォルトのUDPプロトコルには5055を入力します(PhotonServer.configで変更した場合は、MasterServerアプリケーションのカスタムポート)。プロトコルやサーバーごとのデフォルトポートの一覧はこちら

OnPremises Settings Example
OnPremisesの設定例

Photon Server (OnPremises)を使用する際には、いくつかの注目すべき調整があります。

  • Photon Server v4に接続する場合、シリアル化プロトコルをバージョン1.6に設定してから接続してください(1.8はこのサーバーのバージョンと互換性がないため)。
    PhotonNetwork.NetworkingClient.SerializationProtocol = SerializationProtocol.GpBinaryV16;
  • Cientsでは、ユーザーを認証しない場合でも、固有のUserIdを設定する必要があります。例えば、デバイスごとにGUIDを生成して保存します。
  • GameVersion / AppVersionは、個別の仮想AppIdsを作成するためには使用されません。

Photon Server v4とPhoton Cloudの違いや、Photon Server v4の既知の問題点については、こちらを参照してください。

Back to top