Programming Serendipity

気まぐれに大まかに生きるブログ

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;  
        }  
    });  
}  

サンプル: https://github.com/hounenhounen/NCMB_CEDEC_2DShooting