从Parse.com获取所有对象C#(Unity)

时间:2014-02-26 11:20:03

标签: c# loops unity3d parse-platform

我正在使用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);

但我不知道从哪里去。

非常感谢任何帮助。

2 个答案:

答案 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(请参阅“检索游戏数据”部分):

http://docs.kii.com/en/samples/Gamecloud-Unity/

答案 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?