Unityのゲームん内でレートの高い順の全国ランキングを実装しいているのですが開くと95%ぐらいの確率で並び順が滅茶苦茶になっています。(残り5%の超ラッキー時はちゃんと並ぶ)
コードはこんな感じです。
Scoreというフィールド(フィールドであっていますか?もしかしたらレコードかも)から値の高い順に並べています。
C#
1 void GetRanking() 2 { 3 NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject>("Ranking"); 4 query.OrderByDescending("Score"); 5 query.Limit = 1000; 6 7 query.FindAsync((List<NCMBObject> objList, NCMBException e) => 8 { 9 if (e != null) 10 { 11 Debug.Log("E"); 12 } 13 else 14 { 15 Debug.Log("ok"); 16 foreach (NCMBObject obj in objList) 17 { 18 int s = System.Convert.ToInt32(obj["Score"]); 19 string n = System.Convert.ToString(obj["Name"]); 20 int icon = 0; 21 if(obj.ContainsKey("Icon")) 22 { 23 icon = System.Convert.ToInt32(obj["Icon"]); 24 } 25 string id = obj.ObjectId; 26 query.WhereGreaterThan("Score", obj["Score"]); 27 query.CountAsync((int count, NCMBException e2) => 28 { 29 if (e2 != null) 30 { 31 //件数取得失敗 32 } 33 else 34 { 35 //件数取得成功 ここでランキングの順位やレートの値を渡しています 36 int playercurrentRank = count + 1; // 順位表示 37 GameObject rankingPrefab = Instantiate(prefab); 38 rankingPrefab.transform.SetParent(prefabParent.transform,false); 39 rankingPrefab.GetComponent<RankingValue>().SetInfoPrefab(playercurrentRank, s, n, id); 40 rankingPrefab.GetComponent<RankingValue>().icon.sprite = iconData.icons[icon]; 41 } 42 }); 43 } 44 } 45 }); 46 }
もし解決策があれば教えて欲しいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。