PlayFabでGroupの取得をする
今回はUnityでのGroupの取得について書きます。
PlayFabの導入部分はこちら
PlayFabにおけるGroupとは
Group機能というものがPlayFabに実装されています。これはゲームなどでギルドやクランなどの”特定の仲間で集まったグループ”にあたるものです。 PlayFabではEntity Groupsというシステム上にギルドを構築します。
Groupには例えばグループの作成、メンバーの追加、削除、役職の設定、招待などの機能があります。
詳しくは公式のGroup APIのドキュメントをみると何ができるかが書いてあります。
Groupの作成
Unityで取得するためのGroupを作成します。 PlayFabのGroupsからNEW GROUPを選択します。
New Group画面ではそれぞれ次のものを入力します。
New Group | |
---|---|
Group name | グループの名前 |
Entity type | 管理者にするPlayerのType |
Entity ID | 管理者にするPlayerのEntity ID |
CREATE GROUPをするためにはすべて入力する必要があります。 Entity IDを入力するためには最低でも一人のPlayerが必要になります。
Entity typeで"title_player_account"を選択し、Entity IDにはPlayersの中からPlayerを選択し、Overview内のTitle player accountにあるPlayer ID(title)を入力します。
入力後CREATE GROUPを選択することでGroupを作成することができます。
Groupの取得
例えばUnityでGroupの名前を取得するには次のようなコードで取得します。
using PlayFab; private void GetGroupData(){ PlayFabGroupsAPI.GetGroup(new GetGroupRequest { Group = new PlayFab.GroupsModels.EntityKey() { Id = "****************" }, }, result => { var groupName = result.GroupName; }, error => Debug.Log(error.GenerateErrorReport())); }
Idには作成したGroupのIDを入れます。これで指定したIdのGroupのデータを取得できます。 Group関係のものはPlayFabClientAPIではなくPlayFabGroupsAPIにあることに注意です。
GetGroup()で取得できるデータは次の通りです。
GetGroup() Result | |
---|---|
Group | PlayFab.GroupsModels型、IdとTypeを格納 |
GroupName | Groupの名前 |
MemberRoleeId | メンバーの初期RoleのID |
AdminRoleId | 管理者のID |
Roles | Roleと名前のDictionary |
Created | Groupを作成したサーバー上の日時 |
ProfileVersion | Groupのバージョン |
ログインしているPlayerの所属しているGroup一覧の取得
ログイン中のPlayerが所属しているGroup一覧を取得するにはListMembership()を使用し、例えば次のようなコードで取得します。
using PlayFab; private void GetGroupData(){ PlayFabGroupsAPI.ListMembership(new ListMembershipRequest(), result => { var groupList = result.Groups; }, error => Debug.Log(error.GenerateErrorReport())); }