我正在使用Parse.com服务为我的游戏存储姓名,Facebook ID,分数和电子邮件。
到目前为止,我可以获得一个特定的对象(通过指定Parse生成的唯一objectID),但是如何获得按分数值排序的前10个对象?
这是我到目前为止的代码:
using UnityEngine;
using System.Collections;
using Parse;
public class GetFromParse : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void getParseResults()
{
ParseQuery<ParseObject> query = ParseObject.GetQuery("IdealStunts");
query.GetAsync("xWMyZ4YEGZ").ContinueWith(t =>
{
ParseObject gameScore = t.Result;
float time = gameScore.Get<int>("time");
string playerName = gameScore.Get<string>("name");
string fbid = gameScore.Get<string>("fbid");
string email = gameScore.Get<string>("email");
});
}
}
这只能获取特定objectID( xWMyZ4YEGZ )的值,但不是程序员,我绝对不知道如何获取剩余部分并存储它们以供使用。
我知道,为了排序并获得前10个结果,我可以使用
var query = ParseObject.GetQuery("GameScore")
.OrderBy("score")
.Limit(10);
但我不知道从哪里去。
非常感谢任何帮助。
答案 0 :(得分:2)
不要在查询中传递对象ID。
假设您保存了这样的分数:
ParseObject gameScore = new ParseObject("GameScore");
gameScore["score"] = 1337;
Task saveTask = gameScore.SaveAsync();
那么你将不得不做这样的事情来检索一些分数:
var query = ParseObject.GetQuery("GameScore").OrderBy("score").Limit(10);
query.FindAsync().ContinueWith(t =>
{
IEnumerable<ParseObject> results = t.Result;
foreach (var obj in results)
{
var score = obj.Get<ParseObject>("score");
Debug.Log("Score: " + score);
}
});
您可能想要尝试更简单的Kii Cloud(请参阅“检索游戏数据”部分):
答案 1 :(得分:2)
答案结果是将泛型类型更改为float或int而不是ParseObject:
var score = obj.Get<float>("score");
Debug.Log("Score: " + score);
Parse.com - How can I get all objects from a class in C#/Unity?