私はGameSparksを使用していますが、データベースから特定のデータを取得しようとしています。Unityオブジェクト参照のGamesparksがオブジェクトのインスタンスに設定されていません
「typeIt」が「script in used」に設定された「getItem」というイベントを設定しました。
実際にデータの説明フィールドにアクセスする「type」属性を使用して、そのイベントにアクセスするクラウドコードイベントを設定しました。テストハーネスで
var description = Spark.getData().type; // get the type we passed in
if(description !== ""){
// if the type wasnt an empty string, then we can use the type in our query
Spark.setScriptData('items', Spark.metaCollection('items').find({"description": description}));
}
、私が認証し、その後、このJSON私はステートメントがカウントを参照インスペクタで
{
"@class": ".LogEventRequest",
"eventKey": "getItem",
"type": "Sharp"
}
とログイベントを行く:
{
"@class": ".LogEventResponse",
"scriptData": {
"items": [
{
"_id": {
"$oid": "59160a27feeace0001d90f7f"
},
"shortCode": "sword",
"name": "Stone Sword",
"description": "Sharp",
}
]
}
}
の要求と応答に2
私のUnityコードでは、すべて設定して認証し、ボタンをクリックすると以下を呼び出します:
new GameSparks.Api.Requests.LogEventRequest()
.SetEventKey("getItem")
.SetEventAttribute("type", "Sharp")
.Send((response) => {
if (!response.HasErrors) {
GSData data = response.ScriptData.GetGSData("items");
print("Item ID: " + data.GetString("name"));
} else {
Debug.Log("Error Saving Player Data...");
}
});
ザッツ私はprint文を削除した場合
を「オブジェクトのインスタンスに設定されていないオブジェクト参照」のストリームを取得する場合、それはエラーをスローしません。テストハーネスがしているにも関わらず、シャープな説明は見つかっていないようです。
私は多くのバリエーションを試しましたが、動作させることはできません。
あなたは 'response.ScriptData.GetGSData(「アイテム」)は'ヌルを返していることを確認することができます? – lockstock
@lockstock問題が見つかりました。一種のオブジェクトではなく、オブジェクトの配列が返されていました。だから私はそのデータをポーリングするための応答を見送らなければならなかった。あなたがしたいと思っていない限り、私が家にいるときに私は答えとしてそれを書くことができます。また、配列の代わりに単一のオブジェクトを返す方法を含めることができますが、それでも私はまだ分かりません。 – DasBeasto