Unity5 メモ25
- サーバーを立てずにオンラインランキング機能の実装
niftyのクラウドを利用する場合
http://mb.cloud.nifty.com/doc/current/tutorial/tutorial.htmlの左側のカテゴリのプルダウンメニューから「Unity」を選択したのち「SDKダウンロード」からダウンロードし、NCMBフォルダをUnityのプロジェクトに入れる。
(リファレンスは同ページの「SDKリファレンス」メニューから閲覧可能)
http://mb.cloud.nifty.com/
に登録してログインしてアプリを追加し、アプリケーションキーとクライアントキーをメモする。
NCMBSetting.csをGameObjectにアタッチし、先ほどのキーをインスペクター内のそれぞれのパラメータに設定する。
これで準備は整ったので、以下のように実装するとランキングができる。
登録:
public void save( string name, int score ) { var obj = new NCMBObject ("Time"); obj ["name"] = name;//オブジェクトに名前とスコアを設定 obj ["score"] = score; obj.SaveAsync ();//この処理でサーバーに書き込む }
読み込み:
public void fetchTopRankers(){ // データストアの「Score」クラスから検索 var query = new NCMBQuery<NCMBObject> ("Time"); query.OrderByAscending ("time"); query.Limit = 5; query.FindAsync ((List<NCMBObject> objList ,NCMBException e) => { if (e != null) { //検索失敗時の処理 } else { //検索成功時の処理 var list = new List<RankingItem>(); // 取得したレコードをscoreクラスとして保存 foreach (var obj in objList) { int s = System.Convert.ToInt32(obj["score"]); string n = System.Convert.ToString(obj["name"]); list.Add( new Rankers( s, n ) ); } topRankers = list; } }); }