PUN Classic (also called PUN1) is the original and first major version of PUN. It is now replaced by PUN2 which is refactored and enhanced. We highly recommend starting new projects with PUN2 and if possible migrating existing ones from PUN1 to PUN2 by following our "Migration Notes". PUN Classic will be maintained for the coming months. We will fix important bugs and support new Unity versions but new features will be added only to PUN2.

PlayFabとのインテグレーション

イントロダクション

このドキュメントでは、PlayFabとPhotonのインテグレーションをサポートします。 このアプローチを使用すれば、PlayFabとPhotonを併用して、最大限活用できます。 請求は、それぞれのサービスについて個別に発生します。 PlayFabでは、アドオンでPhotonを検索してください-タイトルのマルチプレイヤーセクションです。 PlayFabのPhotonアドオンでは、1つまたは2つのPhotonアプリケーションをセットアップできます(1つのPhoton Realtimeアプリケーション、および/または1つのPhoton Chatアプリケーション)。 以下で、Photon向けのセットアップ手順を参照してください。

Back To Top

カスタム認証

ダッシュボードの設定

以下に、PlayFabでカスタム認証をセットアップする際の手順を示します:

  1. Photon ダッシュボードに進みます。
  2. アプリケーションを選択するか、またはアプリケーションを新規作成します。
  3. 「管理」をクリックします。
  4. 「認証」セクションで、「カスタムサーバー」をクリックします。
  5. [必須] 認証URLをhttps://{PlayFabTitleId}.playfabapi.com/photon/authenticateに設定します。 {PlayFabTitleId}プレースホルダーを実際のPlayFab TitleIdで置換するよう留意してください。
  6. 「作成」をクリックして保存します。
  7. [推奨] 「設定済みのプロバイダと関係のない、匿名クライアントの接続を許可する」をチェックしないでください。

Back To Top

クライアントコード

クライアントは、キー/値のセットを機密情報として送信するよう予期されています。

  • ログインしたユーザーのPlayFabユーザーID
  • Photonトークン(GetPhotonAuthenticationToken クライアントAPIメソッドを使用して取得).
PhotonNetwork.AuthValues = new AuthenticationValues();
PhotonNetwork.AuthValues.AuthType = CustomAuthenticationType.Custom;
PhotonNetwork.AuthValues.AddAuthParameter("username", PlayFabUserId);
PhotonNetwork.AuthValues.AddAuthParameter("token", PlayFabPhotonToken);
// do not set AuthValues.Token or authentication will fail
// connect

Back To Top

Realtime WebhookとWebRPC設定

アプリケーションにRealtime WebhookやWebRPCが不要な場合には、この部分はスキップしてください。

まず、カスタム認証をセットアップすることを推奨します。 カスタム認証がセットアップされていないと、Realtime WebhookやWebRPCは機能しません。

PlayFabタイトルと連携するよう、Realtime WebhookとWebRPCをセットアップする手順は以下のとおりです。

  1. Photonのダッシュボードに進みます。
  2. アプリケーションを選択するか、またはアプリケーションを新規作成します。
  3. 「管理」をクリックします。
  4. 「Webhook」セクションで、「新しいWebhoookを作成」をクリックします。
  5. ドロップダウンリスト「種類を選択」で、Webhook v1.2を選択します。
  6. [必須] 「BaseUrl」をhttps://{PlayFabTitleId}.playfablogic.com/webhook/1/prod/{PhotonSecretKey}に設定します。 -{PlayFabTitleId}プレースホルダーを実際のPlayFab TitleIdで置換するよう留意してください。

    • Photon Realtimeアプリケーションを追加すると、「Photonシークレットキー」がPlayFabのアドオンページに文字列として追加されます。
    • 最新の展開済み/アクティブなCloudScript修正ではなく、最新のアップロード済み/プッシュ済みのCloudScript修正を対象にしたい場合には、prodtestで置換することができます。
  7. [任意]必要に応じて、Webhooksパスを設定してください。 不要なものは削除してください。 詳細こちらを参照してください。

  8. [任意] 「IsPersistent」、「HasErrorInfo」、「AsyncJoin」を設定してください。 デフォルト値を保持したい場合には、これらのキーを削除してください。 詳細はこちらを参照してください。

Back To Top

備考

  • 「CustomHttpHeaders」設定は、CloudScriptハンドラーの影響を受けないためサポートされません。どのような値を設定しても有用ではありません。
  • PlayFabはRealtime Webhooks CloudScriptハンドラー機能に、以下の名前を推奨します:

    • "PathCreate": "RoomCreated"
    • "PathClose": "RoomClosed" (このハンドル名は変更しないでください)
    • "PathJoin": "RoomJoined"
    • "PathLeave": "RoomLeft"
    • "PathEvent": "RoomEventRaised"
    • "PathGameProperties": "RoomPropertyUpdated"

    「PathClose」以外は、他のパスに好きなハンドル名を選べます。 PlayFabは、すべてのWebhooksやWebRPCハンドラーで有効なPlayFabIdをUserId引数として求めます。 唯一の例外は「RoomClosed」です。

  • 「PathClose」以外のすべてのPhoton Realtime Webhookと、すべてのWebRPCではPlayFabのCloudScriptグローバル変数「currentPlayerId」を「UserId」引数の値に設定する必要があります。
  • クライアントに呼ばれた、設定済みのRealtime WebhookまたはWebRPCは、同じ名前のCloudScriptハンドラーが明示的に存在しない限り作動しません。

    例: 「PathJoin」を「GameJoined」に設定した場合、対象のCloudScript修正にこの機能を含める必要があります:

        handlers.GameJoined = function(args)
    {
        // your custom code goes here
        return { ResultCode : 0, Message: "Success" };
    };

    クライアントが「foo」WebRPCメソッドを呼ぶ場合、対象のCloudScript修正にこの機能を含める必要があります:

        handlers.foo = function(args)
    {
        // your custom code goes here
        return { ResultCode : 0, Message: "Success" };
    };

To Document Top