2014-02-26 115 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

不幸的是,循環無法啓動。 –