※Unityでの、ニフティクラウドmobile backendの質問です。
Unityでニフティクラウドmobile backendでランキング圏内のときだけ、
データを保存するというコードを作ってみたいと思います。
仕様は以下のものを考えています。
・レコードには、nameとscoreのフィールドだけ用意する。 ・新しいレコードがランキング3位以内だったら → レコードを保存、旧3位以下(4位以下)のレコードを全て削除。 新しいレコードがランキング4位以下だったら → 何もしない。
3位以内だったら保存という処理は書けたのですが、
その後に、旧3位以下のレコードを全て削除するコードをどう書いたらいいのかわかりません。
ご教授のほどよろしくお願いします。
###試したこと
C#
1 2public class Test : MonoBehaviour { 3 4 void Start () { 5 6 string new_name = "testName"; 7 int new_score = 50; 8 9 //GameScoreクラスを検索するクエリを作成。 10 NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject> ("GameScore"); 11 12 query.WhereGreaterThan("score", new_score); 13 14 // データストアを検索 15 query.FindAsync ((List<NCMBObject> objList ,NCMBException e) => { 16 if (e != null) { 17 //検索に失敗した場合の処理。 18 //Debug.Log("検索に失敗しました。エラーコード:" + e.ErrorCode); 19 } else { 20 //検索に成功した場合の処理。 21 //Debug.Log("検索に成功しました。"); 22 23 if(objList.Count < 3){ 24 save(new_name, new_score); 25 //4以下を削除するコードがまだ未完成。 26 } 27 } 28 }); 29 30 } 31 32 //名前とスコアを保存するメソッド。 33 public void save(string name, int score){ 34 NCMBObject obj = new NCMBObject ("GameScore"); 35 obj ["name"] = name; 36 obj ["score"] = score; 37 obj.SaveAsync ((NCMBException e) => { 38 if (e != null) 39 { 40 Debug.Log("保存に失敗しました。エラーコード:"+e.ErrorCode); 41 } 42 else 43 { 44 Debug.Log("保存に成功しました。objectId:"+ obj.ObjectId); 45 } 46 }); 47 } 48 49}
あなたの回答
tips
プレビュー