2014-02-26 82 views
2

我正在使用Parse.com服务为我的游戏存储名称,Facebook ID,分数和电子邮件。从Parse.com获取所有对象C#(Unity)

到目前为止,我可以得到一个特定的对象(通过指定由Parse生成的唯一对象ID),但是我怎样才能获得按分数值排序的前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

不要在查询中传递对象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); 
    } 
}); 

你可能想尝试纪伊云,而不是其更容易(请参阅“检索游戏数据”一节):

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

+1

我会研究纪伊云,非常感谢你! –

+1

Kii真的很好很容易,但真正让我失望的是玩家必须注册/登录。 –

+0

不幸的是,循环无法启动。 –