Choose your operating system:
Windows
macOS
Linux
オンライン サービスにログインすると、ユーザーは自分の友達やオンラインで出会った他のユーザーに関する情報 (オンラインであるかどうか、彼らのしていること、ゲームに参加可能かどうかなど) を見ることができます。 Presence インターフェース は、オンライン サブシステムにこれらの機能へのアクセスを提供します。
プレゼンス ステータス
ほとんどのオンライン サービスは、「オンライン」、「オフライン」、「不在」などのような各ユーザーの基本的なプレゼンス (存在) の状態について認識します。また、「ロビー内」や「(マップ上で) 対戦中」などのようなゲーム固有の状態も認識します。 ただし、サービス固有のプライバシー ポリシーとアカウント設定により、これらの設定は常には表示されなかったり、一部のユーザーのみに表示されたりして、それ以外のユーザーには表示されない場合もあります。 オンライン サブシステムはこれらのポリシーや設定とやり取りはしませんが、取得する情報はそれらによって影響を受けます。
プレゼンスを定義する
FOnlineUserPresence
クラスには、ユーザーのプレゼンスに関するすべての情報が含まれています。
ユーザーが現在オンラインであるかどうかや、ユーザーがゲームをプレイしているかどうかなどの基本情報に加えて、ユーザーのプレゼンス (FOnlineUserPresenceStatus
クラスの使用) には、より詳細な情報が格納されます。
これには通常、表示用のローカライズされた文字列、ユーザーの基本状態を説明するための列挙型の値 (型EOnlinePresenceState
)、および正確なプレゼンス表示メッセージを作成する際に使用可能な、ゲーム固有のカスタム データを保持する一連のキーと値のペアが含まれます。
他のユーザーに関する情報を取得する
特定のユーザーに関するプレゼンス情報を収集するための基本的なフローは、まず最初に QueryPresence
を介してオンラインサービスにリクエストし、そのユーザーを FUniqueNetId
で指定します。
その操作が終了すると、提供された FOnPresenceTaskCompleteDelegate
が呼び出され、ユーザーと、リクエストの成否を示します。
成功した場合、ローカル プレゼンス情報キャッシュには最新のプレゼンス情報が入ります。この情報は GetCachedPresence
関数を通じて利用できます。
一部のオンライン サービスは、ユーザーのプレゼンスについてオンライン サブシステムに早期に通知します。
これらのサービスでは、実際には QueryPresence
を呼び出したり、そのデリゲートを待ったりする必要はありませんが、通常のコードのフローは変更されないので、複数のサービス間で機能します。
ユーザーのプレゼンスを設定する
SetPresence
関数では、オンライン サービスを介してローカル ユーザーのプレゼンス状態を設定します。
オンライン サービスで新しいステータスを確認する必要があるため、これは非同期呼び出しとなります。完了時には FOnPresenceTaskCompleteDelegate
型のデリゲートが呼び出されます。
プレゼンス ステータス自体は、FOnlineUserPresenceStatus クラスによって記述されます。