Unityでゲームを作り始めると、
プレイするモチベーションを掻き立てるために、
ハイスコア機能をつけたくなりますよね?
ネットワークで世界がつながっている現代、
できれば世界中のライバルと、
スコアを競えるスコアランキングを実装したいものです。
そこで、本記事では、
オンラインのハイスコアランキングを実装する方法を、
簡潔に綴っておこうと思います。
現状、私が把握している2つの方法を備忘録として、紹介します。
スコアの管理は、各社が提供しているサーバーを利用するので、無料でゲーム開発をしたい方は無料プラン内に収まるように、使い分けるのが良いかもしれません。
1.unity-simple-ranking(ニフクラ)
”ニフクラ mobile backend”というクラウドサービスを利用すれば、スコアランキングやガチャ機能などを実装することができます。
通常、ランキングを設計していくのは、少し時間がかかりますが、
naich's lab様が"unity-simple-ranking"というツールを作られ、Githubより配布されています(感謝)。
紹介ページ:https://blog.naichilab.com/entry/webgl-simple-ranking
Github:https://github.com/naichilab/unity-simple-ranking
これを利用すれば、マジで秒です!^^;
以下、実装の手順(紹介ページに従うだけ)
1.ニフクラのアカウント登録
まずは、ニフクラのサービスを利用するため、アカウント登録が必須です。
(各種SNSアカウントと紐づけてログイン可能)
ログインによって、サーバー情報を管理することができます。
(ユーザーの数や通信量を確認したり、スコアを削除できる)
2.アプリケーションキー&クライアントキーの取得
クイックスタートを参考に、ニフクラ管理画面からアプリを作成し、アプリケーションキーとクライアントキーを取得します。
(あとでUnity Editorにぶち込みます)
3.SDK「NCMB.x.x.x」のインストールとEditor設定
Githubより配布されているSDKをダウンロードします。
最新versionのzipファイル(NCMB.x.x.x.zip)を得て、解凍~。
これでニフクラ側からやることは終わりです^^
Unity Editorを起動し、各種プラットフォームにスイッチしておきましょう。
UnityのAssetsフォルダ内に、解凍した"NCMB.x.x.x"をドラッグ&ドロップしたら、フォルダ配下に入っているPackageをクリックして、importを開始します。
importしたら、Asset内にフォルダが自動的に増えます。
Prefabsフォルダにある2つのオブジェクト(図参照)をHierarchyに配置します。
NCMBSettingのInspector上で、先ほど取得していたアプリケーションキーとクライアントキーを入力すれば、OKです。
ここまで準備が整ったら、"unity-simple-ranking"をセットしていきます!
4."unity-simple-ranking"のインストールとEditor設定
本ツールの紹介ページからGithubページに移り、「↓Code」から「Download zip」でダウンロードします。
Unity EditorのAssetsタブから、Import Package_Custom Packageをクリックし、ダウンロードした「unity-simple-ranking.unitypackage」をインポートします。
すると、「naichilab」というフォルダが生成されます。
その配下にあるRankingLoaderというPrefabファイルをHierarchyに配置します。
さらに、
Hierarchyに、UIのEventSystemを作成するのと、
「BuildSetting」でしておきます。
(これ忘れがち)
最後に、スコアランキングを表示するためのコードを書けばOKです。
テストで見るなら、空のオブジェクトにScriptをアタッチして、次の記載をすればよいでしょう。
void Start()
{
naichilab.RankingLoader.Instance.SendScoreAndShowRanking (100);
}
昇順・降順の設定や、スコア・時間の設定などについては、
naichilab様のサイトをご参照ください。
写真に近いリアルガチアバターを作る方法を完全解説してるのは本ブログだけ!↓
2.PlayFab(Microsoft)
Microsoft Azure PlayFab サービスは、ゲーム開発を助けるバックエンドプラットフォームです。
unity-simple-rankingのツールほど、秒で実装はできませんが、
ランキングやチャット、報酬機能など様々なアレンジが可能です。
以下、手順。
1.Unity Editor機能の拡張パッケージをダウンロード
PlayFabのUnity3Dクイックスタートページから、”Playfab Unity エディター拡張機能のアセットパッケージ”をクリックし、ダウンロードします。
UnityEditorのAssetsタブ_Impot Package_Custom Packageより、”PlayFabEditorExtensions.unitypackage”を選択して、Importを済ませます。
すると、「Playfab EdEx」というウィンドウがEditor内に出てきます。
2.PlayFab SDKのインストールとタイトル作成
「Playfab EdEx」からPlayFabのアカウントを作成します。
(すでに作成済みの方は小さい"LOG IN"をクリック)
すると、”PlayFab SDK”のインストールをするボタンが出てくるので、それをクリック。
インストールしたら、Settingで、"Studio"と"Title ID"を記入しなければなりません。
そのためには、「GAME MANAGER」というところをクリックして、管理画面に飛びます。
「…」から「タイトル」をクリックしたら、名前やジャンル、ターゲットマーケットプレイスなどを入力し、新たなタイトルを作成します。
そして、Editorに戻り、いったんLog Out→Log Inし直してください。
すると、Title IDを選べるようになっています。
これでPlayFabを使う準備は整いました。
PlayFabを使ったランキングの実装は長くなるので、
個人的に最もシンプルに実装する方法は、下の記事にまとめています。
【最も簡単】PlayFabでの自動ログイン(サイレント)とランキングの実装方法
以上、参考になれば幸いです^^