我正在实施Parse Unity SDK以获得高分系统。我对我的数据进行查询以获得前十名球员及其得分。 (应按分数排序)。由于某些原因,当我的代码运行时,我得到一个空白字符串作为名称,得到0为得分,即使我的数据中有实际值。
以下是查询:
int[] scores = new int[10];
string[] names = new string[10];
int i = 0;
var query = ParseObject.GetQuery ("HighScores").OrderByDescending ("score").Limit (10);
query.FindAsync().ContinueWith (t =>
{
IEnumerable<ParseObject> results = t.Result;
foreach (var obj in results)
{
scores[i] = obj.Get<int>("score");
names[i] = obj.Get<string>("playerName");
i++;
}
});
班级名称是“HighScores”,我正在尝试访问每个已保存条目的分数(“分数”)和玩家名称(“playerName”)。
编辑:
我发现返回的结果为零,所以它必须是查询的内容。我不明白它有什么不妥。
15年8月17日 我仍然没有发现我的查询发生了什么。有任何想法吗?
答案 0 :(得分:0)
事实证明我是从查询中获取数据的。查询一直很好。实际问题是我试图将新发现的分数输出到在查询完成获取数据之前被调用的字符串,因为查询是异步调用。我没有这样做,而是让查询完全运行,一旦查询完成,我将一个名为finishedRunningQuery的静态bool设置为true。现在在update()方法中我检查:if(finishedRunningQuery)然后更新高分文本。这解决了这个问题。