PlayfabをUnityで使う上の雑なメモ
ベストプラクティスなどはガン無視してとりあえず使えればいいやんの観点で
Playfabのアカウント作成
Azureのアカウント作成は不要
Microsoft Azureのマネージドサービスでもあるらしいが、そっちではなくBaaSとしてのPlayfabだけを使うっぽい(?)ので
代わりにPlayfabのアカウントを作成する必要がある
下記リンクのPlayfabにサインインから。Azureは登録しなくてよい
https://azure.microsoft.com/ja-jp/products/playfab
Playfabのスタジオにタイトルを作成
スタジオという区分と、その中のタイトルという区分があるらしい
スタジオには適当に自身の命名を行って、その中のタイトルで分ける方針がよさそう?
テスト用にタイトルを新規作成する。
そのタイトルについて、タイトルの設定→API設定から、「クライアントにプレイヤー統計情報のポストを許可する」をOnにしておく。クライアント側で不正が可能になってしまうが、小規模個人開発の範疇では許容とする。大規模だったりセキュリティ大事だったりする場合はそれに適したことをやってね。
UnityにSDKを入れる
下記のことを行えばUnityにPlayfab用のSDKを入れられる
https://learn.microsoft.com/ja-jp/gaming/playfab/sdks/unity3d/installing-unity3d-sdk
入れた後は、先ほど作成したスタジオの中のタイトルを設定すればOK
サンプルを動かしてみる
個人的にはランキング機能とKVS(キーバリューストア)の二つが使えればよいので、その二つを見る
ランキング
ゲーム起動時に、サイレントでPlayerPrepsに保存したIDでログインを行い、それに紐づけてスコア送信でよさそう。
PlayFabClientAPI.LoginWithCustomIDで、ログイン可能。どのタイトルにログインし、IDかを指定する
その後、UpdatePlayerStatisticsで送信するスコアを指定する。
ランキングの昇順降順や、最大最小現在の値を取得するためにはWeb側で設定するのがよさそう
KVS
未検証。以下の記事を見たい
https://qiita.com/_y_minami/items/3396f832d868d52bbbaf
コード内のコールバック地獄を回避
コールバックではなくAcync/Awaitで対応したい
https://qiita.com/_y_minami/items/7ad2bf7f706c24b67c1c