Skip to main content
既定では、ほとんどの PlayFab SDK はプレイヤーのログイン結果をキャッシュします。このキャッシュは、単一のプレイヤーのログインを想定する最も一般的なシナリオでは便利です。同時に複数のプレイヤーをサポートするゲームや、プレイヤーの認証情報とサーバーの資格情報の両方を管理するサーバーの場合、そのキャッシュが邪魔になることがあります。こうしたシナリオを容易にするため、PlayFab SDK には静的とインスタンス化された API クラスの両方が用意されています。

静的とインスタンス化された API クラス

PlayFab の例やサンプル コードのほとんどは、静的 API クラスを使用して構築されています。たとえば Unity では、PlayFabClientAPI への参照が見られるかもしれません。これらの静的クラスは、SDK 内の静的状態に対して読み書きを行います。静的状態への依存により、同じゲーム クライアント内で複数のプレイヤーを扱う場合にこれらのクラスの使用が難しくなります。インスタンス化された API クラスはこれらの問題を回避しますが、その代わりに管理と追跡の要件が増えます。同時に複数の PlayFab ログインをサポートする必要がある場合は、インスタンス化された API クラスを使用することをお勧めします。 Unity SDK では、PlayFabClientInstanceAPIPlayFabClientAPI のインスタンス化されたバージョンです。他のすべての API クラスも同様の命名規則に従います。API クラスのインスタンス化されたバージョンを使用する場合、メソッドを呼び出す前にクラスのインスタンスを作成する必要があります。インスタンスを作成するには、いくつかの追加コンテキストを指定する必要があります。ほとんどのクラスでは、追加で必要なコンテキストはプレイヤーの認証コンテキストのみです。Unity では、このコンテキストは PlayFabAuthenticationContext です。一部のクラスにはログイン呼び出しが含まれます。これらの呼び出しでは、プレイヤーの認証コンテキストがまだない可能性があります。その場合は、タイトル ID などの基本設定のみを提供します。これらの設定は、PlayFabApiSettings オブジェクトを介して渡されます。

インスタンス化された API クラスの使用

適切な認証コンテキストまたは API 設定オブジェクトでインスタンス化された API クラスを作成したら、静的クラスと同様に使用できます。すべての要求と応答オブジェクトは同じです。唯一の違いは、インスタンスの寿命を追跡し、PlayFab を呼び出す可能性のある人に適切なインスタンスが提供されるようにする責任があなたにあることです。複数のプレイヤーを扱う場合、プレイヤーごとに 1 つずつ、複数の API クラスのインスタンスが必要です。これらのインスタンスは、オーナーとしてプレイヤー オブジェクトの背後にカプセル化するのが最も簡単なことが多いですが、これはあなたに任されています。 プレイヤーをログインさせるインスタンス化されたクラス (PlayFabClientInstanceAPI など) は、そのプレイヤーの認証コンテキストを API クラス インスタンス内で作成してキャッシュします。この機能により、必要な追加のクラスを作成するときに認証コンテキストを簡単に参照できます。

Unity の例

このサンプル コードは、複数のプレイヤーがゲームにログインし、独立した状態が別々のクラス インスタンスで追跡されることを示しています。この例では、API クラスと基本機能が単純化された PlayFabPlayer オブジェクトの背後にカプセル化されています。ゲームが開始されると、2 人のプレイヤーをログインさせ、それぞれのプレイヤーについて PlayFab に保存されているデータを取得します。

Unreal の例

このコード サンプルは、独自の PlayFab ログイン コンテキストを含む Unreal のアクターを示しています。ALoginActor クラス内で PlayFab API インスタンス クラスをカプセル化する方法を示しています。複数の ALoginActor インスタンスをマップに追加し、それぞれに独自の CustomId を与え、独立して PlayFab 操作を実行できます。 LoginActor.h:
LoginActor.cpp:

サーバー認証

インスタンス化された API クラスがゲーム クライアントで複数のプレイヤーを扱うのと同様に、サーバーがタイトルとプレイヤーの認証の組み合わせ、または同時に複数のタイトルを扱うことを可能にします。基本的なパターンはほぼ同じです。サーバー ログインを処理する API クラスをインスタンス化し、そのインスタンスに適切な PlayFabApiSettings オブジェクトを提供し、認証 API を呼び出します。サーバー上にいる場合、その API は一般的に PlayFabAuthenticationInstanceAPI.GetEntityToken です。プレイヤーのログインと同様に、GetEntityToken 呼び出しの結果は API クラス インスタンスにキャッシュされ、authenticationContext インスタンス プロパティを介してさらに多くの API クラス インスタンスを作成するために参照できます。
最終更新日 2026年8月13日