Unity上で、PlayFabのランキング部分を簡易的に利用するためのパッケージ。
- iOS
- Android
- WebGL
- PlayFabのページよりアカウントを作成
- クイックスタートによりプロジェクトのセットアップを実施
- https://developer.playfab.com/ja-JP/r/t/プロジェクトID/leaderboards/new を開く
- 任意の値で作成
- 設定画面のAPI機能 https://developer.playfab.com/ja-JP/r/t/プロジェクトID/settings/api-features にて、「クライアントにプレイヤー統計情報のポストを許可する」にチェックをする
以下から最新のものをダウンロードしてください https://github.com/nir-takemi/UnityPlayFabRanking/releases
-
ログインのためのprefab(ylib > UnityPlayFabCommon > Resources > Prefabs > GO_UnityPlayFab)をランキング表示/更新したいscene上に置く (ランキングの処理が複数sceneに存在する場合は、DontDestroyOnLoadなオブジェクト配下に置く)
-
ランキング表示/更新のためのprefab(ylib > UnityPlayFabRanking > Resources > Prefabs > GO_RankingView)をランキング表示/更新したいscene上に置く (uGUIなので、見た目変えたい方は修正してprefabを作り直した後に配置してください)
-
4で配置したRanking prefabの設定値を任意のものに入力する
- LoadOnAwake:Awakeが実行されるタイミングで設定値に基づくランキングデータをloadするかどうかを設定
- RankingViewOnly:ランキングのみの表示にするかどうかを設定(基本形は名前更新、ランキングのセットで表示するprefabとなっている)
- RankingName:PlayFab上で作成したランキングの統計情報名を入力
- RankingDataSize:ランキング表示数
- FormatScore:スコア表示のフォーマット(カンマ表示したい場合は「{0:#,0}」などで指定)
- PrefabRankingData:基本はデフォルトのままで問題ないですが、独自のUIを指定したい場合は指定し直してください
- EventOnRankingLoad:ランキングロード後に実行されるイベント
- EventOnClose:RankingViewが閉じられる際に実行されるイベント
-
Unity/コード上で以下のように処理を書く
// Inspector上でアタッチする
[SerializeField]
private ylib.Services.UI.RankingView rankingView = null;
// スコア更新
rankingView.UpdateScore(12345);
// 可視化するだけ(そのため初回load時はちょっと時間かかる)
rankingView.gameObject.SetActive(true);
- 本パッケージについてはLICENSEを参照ください
- PlayFabのSDKを利用しているので、PlayFab関連に関してはPlayFab側のライセンスに準拠してください
- デフォルトの設定だとプレイヤー名が重複がされるとエラーになる
- 設定の一般https://developer.playfab.com/ja-JP/r/t/プロジェクトID/settings/general より、「一意でないプレイヤー表示名を許可する」をチェックすれば重複は可能になります(ただし、一度変更すると以降変更できないため注意です)
- 設定の一般https://developer.playfab.com/ja-JP/r/t/プロジェクトID/settings/general より、「一意でないプレイヤー表示名を許可する」をチェックすれば重複は可能になります(ただし、一度変更すると以降変更できないため注意です)